Az Euclid programozási nyelv

Bevezetés

A Euclid a helyesség-bizonyítható programok nyelve. A Toronto Egyetemen fejlesztették Ric Holt és tsai. Eredetileg a Motorola 6809 processzorra tervezték. A compiler első implementációját James Cordy vezette a Toronto Egyetemen. A maga idejében innovatívnak számított; a fordítót fejlesztő csapat 2 év alatt összesen 2.000.000$ költségvetéssel dolgozott, a Defense Advanced Research Projects Agency of the US DoD, és a Canadian Department of National Defence megbízásából. Pár évig használta is a I.P. Sharp Associates, Mitre Corporation, SRI International, és más, rendszerprogramozás és biztonságos szoftver-rendszerek témákkal foglalkozó nemzetközi kutató intézetek.
James R. (Jim) Cordy Számítástechnika-tudós és oktató Kanadából, érdemei között szerepel az első Euclid fordító, a TXL programozási nyelv, a Turing-nyelvcsalád, az SP/k, Concurrent Euclid és S/SL nyelvek fejlesztése.
Az Euclid nyelvet azért hozták létre, hogy ezzel megkönnyítsék a bizonyítható rendszerprogramok készítését. Az Euclid nem általános célú programozási nyelv, csupán kis programok számára tervezték. A bizonyíthatóság érdekében a felhasználónak fel kell adnia valamennyit a hatékonyságból, illetve el kell viselnie némi kényelmetlenséget a program írása alatt.
Az Euclid azt a fejlesztési elvet képviseli, melyben a helyes program létrehozásával és bizonyításával kapcsolatos legtöbb munka a programozó helyett a nyelvre, illetve a fordítóra hárul.

Az Euclid sokat felhasznál a Pascal nyelv jellemzőiből. A főbb különbségek a két nyelv között a következők:


Sok egyéb szempont befolyásolta az Euclid tervezését: nem volt fő szempont a hordozhatóság, de a fordító azért több gépre képes kódot generálni. Ha elég hatékony a tárgykód, nincs szükség a fordító optimalizálására, ahhoz hogy hatékony kódot kapjunk. Kis programokra tervezték az Euclidot, ezért az egy részben való fordítás ajánlott.