2012-10-10 12 views
6

znajdę w standardzie:Czy standard C++ wymaga maszyny binarnej?

Te reprezentacje integralnych typach określa wartości przy użyciu czystego binarnego systemu numeracji

Ale moje rozumienie jest to, że nie jest to wymóg, że C++ musi być realizowane na maszynach opartych na podstawie 2 w sprzęcie; innymi słowy, wydaje się to być jedynie wymogiem dla tego, co programista zobaczy.

Czy standardem C++ wymagają CPU binarny, czy może ważny C++ wdrożenie realizowane na maszynach trójskładnikowych lub po przecinku?


malutki informacji tła: w historii, było już komputery z dziesiętnych ternaries lub komputerów, gdzie C++ bajt będzie 36 bitów (PDP-10)

+0

Nie rozumiem, dlaczego nie. – cdhowie

+0

Trudno zobaczyć, np. Operatory bitowe działałyby na architekturze niebinarnej, chyba że masz między sobą binarną maszynę wirtualną, w którym to przypadku architektura bazowa jest dyskusyjna. –

+1

Ten fragment normy wydaje mi się całkiem jasny. Wymaga maszyny zdolnej do tworzenia binarnych reprezentacji liczb. Innymi słowy, typowy nowoczesny komputer cyfrowy lub przynajmniej taki, który może emulować liczby binarne. –

Odpowiedz

6

Chociaż nigdy bezpośrednio podane w standardzie, istnieje zasada "jak gdyby", która dotyczy zasadniczo wszystkich wymagań w standardzie C++ (i C).

Innymi słowy, masz prawo do przerwy żadnej reguły, które chcesz, tak długo, jak można produkować takie same skutki zewnętrznie obserwowalnych jak gdybyś zastosowaną regułę zgodnie z opisem. Chociaż nie stwierdzono w normach, zasada ta jest wyraźnie stwierdzono w Rationale do standardu C. O ile mi wiadomo, nie ma zgodnego uzasadnienia dla standardu C++, ale oba są na tyle bliskie, że widzę mały problem z zastosowaniem reguły do ​​obu.

+1

Wierzę, że istnieje foot-note, który wymienia" jak gdyby "pod 1.9.1. –

+0

Nie wiem o wcześniejszych standardach, ale w C++ 11 § 1.9/1 jest to bezpośrednio powiedziane: "Opisy semantyczne w niniejszym standardzie międzynarodowym definiują sparametryzowaną niedeterministyczną maszynę abstrakcyjną. Ta międzynarodowa norma nie nakłada wymogu na strukturę zgodnych implementacji. W szczególności nie muszą kopiować ani emulować struktury abstrakcyjnej maszyny. Przeciwnie, implementacje zgodne z wymaganiami są wymagane do emulowania (tylko) obserwowalnego zachowania abstrakcyjnej maszyny, jak wyjaśniono poniżej. " – JohnCand

Powiązane problemy