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 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 .
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 .
Programozási nyelvek | |
---|---|
|