mboost-dp1
For C nørder
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
Jeg har aldrig oplevet den slags problemer med fx GCC eller andre C compilere
Men det kan åbenbart opstå
Good to know
Der er ellers mange der har en fast overbevisning om at compilere er fejlfrie og det inkluderede mig indtil jeg læste dit link
På den anden side så er en compiler et program som alt andet og kan derfor naturligvis indeholde fejl
Men det kan åbenbart opstå
Good to know
Der er ellers mange der har en fast overbevisning om at compilere er fejlfrie og det inkluderede mig indtil jeg læste dit link
På den anden side så er en compiler et program som alt andet og kan derfor naturligvis indeholde fejl
#2
Det sker. Typisk i forbindelse med hård optimering. Så ender man op med noget kode, hvor der i kommentar står "med compiler XYZ version V skal du compile med optimization level N fordi med >N giver det fejl". Det er selvfølgelig typisk ved mere "usædvanelig" kode at problemet opstår.
Det sker også for GCC. Check f.eks. deres bug liste.
Det sker. Typisk i forbindelse med hård optimering. Så ender man op med noget kode, hvor der i kommentar står "med compiler XYZ version V skal du compile med optimization level N fordi med >N giver det fejl". Det er selvfølgelig typisk ved mere "usædvanelig" kode at problemet opstår.
Det sker også for GCC. Check f.eks. deres bug liste.
#7
Compiler, måske, ja.
Men bevist korrekt C kode kan stadigvæk have fejl i, hvis der er fejl i compileren.
Ligesom der kan være fejl i standard frameworks (Så ikke så relevant for C, men de fleste andre sprog nu om dage), hvilket vil sige at selvom din kode er bevist korrekt, så kan der stadigvæk være fejl.
F.eks. oversætte vi noget Objective-C kode til Swift for et par uger siden. Vi kan bevise at koden er korrekt og oversat korrekt, men der er stadigvæk fejl i Swift udgaven _fordi_ at der var ukendte side-effects i Objective-C der gjorde at visse fejl i _brugen_ af koden, ikke blev opdaget.
Så et bevis er kun noget værd i isolation. En bevist korrekt compiler kan vel stadigvæk indeholde fejl hvis der er fejl på et hardware niveau.
Compiler, måske, ja.
Men bevist korrekt C kode kan stadigvæk have fejl i, hvis der er fejl i compileren.
Ligesom der kan være fejl i standard frameworks (Så ikke så relevant for C, men de fleste andre sprog nu om dage), hvilket vil sige at selvom din kode er bevist korrekt, så kan der stadigvæk være fejl.
F.eks. oversætte vi noget Objective-C kode til Swift for et par uger siden. Vi kan bevise at koden er korrekt og oversat korrekt, men der er stadigvæk fejl i Swift udgaven _fordi_ at der var ukendte side-effects i Objective-C der gjorde at visse fejl i _brugen_ af koden, ikke blev opdaget.
Så et bevis er kun noget værd i isolation. En bevist korrekt compiler kan vel stadigvæk indeholde fejl hvis der er fejl på et hardware niveau.
Claus Jørgensen (8) skrev:
Men bevist korrekt C kode kan stadigvæk have fejl i, hvis der er fejl i compileren.
Ja.
Det er vel det man har forsøagt at afhjælpe her.
Først beviser man at ens egen C kode er korrekt.
(ikke nemt i C !)
Så er der noggle flinke mennesker som beviser at deres compiler oversætter C til korrekt instruktions sekvens.
Claus Jørgensen (8) skrev:
En bevist korrekt compiler kan vel stadigvæk indeholde fejl hvis der er fejl på et hardware niveau.
Ja.
Det manglende trin er nu at CPU vendor beviser at deres CPU udfører instruktion sekvens korrekt.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.