Cyclone (programozási nyelv)

Ciklon
Szemantika eljárási
Nyelvóra programozási nyelv
A végrehajtás típusa összeállított
Megjelent 2001
Szerző Az AT&T számos egyetemmel együttműködve
Fejlesztő AT&T
Típusrendszer szigorú, statikus
Befolyásolva C , ML
befolyásolta Rust (programozási nyelv)
Weboldal ciklon.thelanguage.org

A Cyclone (ejtsd: "C-clone" vagy "Cyclone") egy kutatási programozási nyelv, amelyet Dan Grossman , Trevor Jim és Greg Morrissette hoztak létre a Cornell Egyetemen a klasszikus C nyelv finomításaként a programozás megbízhatóságának és biztonságának javítása érdekében. , miközben megtartja az alacsony szintű funkciókat és alkalmazhatóságot.nyelv a C-hez hagyományos területeken ( rendszerprogramozás , mikrokontroller programozás ).

A projekt célja és története

A fő tervezési cél az, hogy a C-programokat biztonságosabbá tegyék a hibákkal és sebezhetőségekkel szemben , például a hírhedt puffertúlcsordulásokkal szemben, a hatékonyság és a folytonosság minimális vesztesége mellett. Az ötlet az, hogy hatékony biztonsági funkciókat vegyünk át a magas szintű nyelvekből, és implementáljuk azokat egy alacsonyabb szintű nyelven.

A fejlesztés alapjait Dan Grossman , Trevor Jim és Greg Morrissette fektették le a Cornell Egyetemen az erősen tipizált assembly nyelv , a TAL [1] (Typed Assembly Language) megtervezésekor és implementálásakor.

A fordító 1.0-s verziója 2006. május 8- án jelent meg . 32 bites POSIX környezetekben fut: Linux , Cygwin / Windows , MacOS és BSD . Terjesztve a GNU GPL 2.0-s verziójának feltételei szerint. Jelenleg a projekt hivatalosan az „Elért kutatási célok” szöveggel zárul. A tervezési ötletek egy részét a Rust programozási nyelv használja .

Nyelvi áttekintés

A Cyclone-t a C-től elsősorban a szigorúbb gépelés, és szükség esetén a futásidejű ellenőrzések bevezetése különbözteti meg, például a tömbhatárok betartása érdekében . Jelentősen kiterjesztett és formalizált mutatókkal végzett munka , ennek ellenére a C programozók számára ismert pointer aritmetikai módszerek továbbra is működnek. A C++ , C99 és GCC számos kényelmi funkcióval bővült a nyelv . Egy új @tagged union adattípus került bevezetésre – a c -union  analógja , amely információkat tárol arról, hogy milyen típusú adatokat tárol jelenleg.

A legnagyobb újítások az adattípusokkal való munkavégzéshez szükséges ötletek kölcsönzéséhez kapcsolódnak az ML nyelvből . Ez egy rugalmas statikus gépelési rendszer , amely támogatja a típuskövetkeztetést , amely megkönnyíti a különféle rekurzív struktúrák ( listák , fák , stb.) leírását, és lehetővé teszi a polimorfizmus és az általános programozás használatát . A programozó teljes mértékben felügyeli a típusillesztési folyamatot .

Az új nyelv nagyon közel áll a C-hez, ami lehetővé teszi, hogy a C nyelven írt alkalmazások minimális erőfeszítéssel átvihetők rá. A Cyclone készítői kifejlesztettek egy egyszerű webszervert , amely szerintük teljesen immunis a gyakori hibákkal és sebezhetőségekkel szemben .

Lásd még

Jegyzetek

  1. Gépelt összeállítási nyelv . Letöltve: 2007. május 15. Az eredetiből archiválva : 2007. június 2.

Források

Linkek