Miben jobb egy erősen/statikusan típusos nyelv, mint egy gyengén/dinamikusan típusos?
"Az Ariané 5 bugját egy sima túlcsordulás okozta"
Így is lehet mondani azt, amikor egy 64 bites float adat az intre történő konverzió után is túl nagynak bizonyul ahhoz, hogy 16 biten elférjen.
Az Ariané 5 vezérlését Adában írták. Azért szeretik arrafelé az Adát, mert az egyik legbiztonságosabb statikusan típusos nyelv. Tele van mindenféle futásidejű ellenőrzéssel, nem tudsz benne tömböt túlindexelni, nincs benne olyan pointeraritmetika mint pl. C-ben, automatikus memóriakezelése van, stb.
A tragédiát az okozta, hogy a vízszintes gyorsulásmérő 64 bites lebegőpontos típusként adta vissza a gyorsulás mértékét, ami nem fért bele a 16 bites egész típusba (az Ariané korábbi verziói esetén ezzel nem volt gond, mert nem voltak képes akkora sebességre), ezért túlcsordult. Az elsődleges irányítórendszer ekkor a hiba miatt leállt, a backup rendszer életbe lépett, de az is leállt. A fő vezérlőrendszer ezt a kapott gyorsulási értéket úgy értelmezte, hogy az egyik oldalon erős korrekcióra van szükség, ezért azt a fúvókát túltolta, a többit pedig lekapcsolta. A rakéta átfordult, az aerodinamikai hatás miatt kettétört és felrobbant.
Mi történt volna, ha a vezérlés ezen részét mondjuk Javascriptben írják? Az történt volna, hogy a 16 bites int, túlcsordulás helyett, implicit castolódott volna 64 bites lebegőpontossá, a vezérlés helyesen korrekciózott volna, és az Ariané 5 talán még ma is röpködne.
Sokkal könnyebb típusos nyelvben fejleszteni mert nem kell, hogy azon agyaljak hogy egy változó épp mire képes.
Ezért a nem típusosság nekem nagyon bezavar. Fontos hogy lássam egy változót mi céllal definiáltam ezért én nem típusos nyelvben is kiírom a típusokat.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!