Ciclon | |
---|---|
Semantică | procedural |
Clasa de limba | limbaj de programare |
Tipul de execuție | compilate |
Aparut in | 2001 |
Autor | AT&T în colaborare cu o serie de universități |
Dezvoltator | AT&T |
Tip sistem | strict, static |
A fost influențat | C , ML |
influențat | Rust (limbaj de programare) |
Site-ul web | cyclone.thelanguage.org |
Cyclone (pronunțat „C-clone” sau „Cyclone”) este un limbaj de programare de cercetare creat de Dan Grossman , Trevor Jim și Greg Morrissette de la Universitatea Cornell ca o perfecționare a limbajului clasic C pentru a îmbunătăți fiabilitatea și siguranța programării. , menținând în același timp caracteristicile de nivel scăzut și aplicabilitatea limbajului în domeniile tradiționale C ( programarea sistemelor , programarea microcontrolerelor ).
Scopul principal de proiectare este de a face programele C mai sigure împotriva erorilor și vulnerabilităților , cum ar fi depășirile infame ale bufferului , cu pierderi minime de eficiență și continuitate. Ideea este de a prelua funcții de securitate eficiente din limbi de nivel înalt și de a le implementa într-o limbă de nivel inferior.
Baza dezvoltării a fost pusă de Dan Grossman , Trevor Jim și Greg Morrissette de la Universitatea Cornell la proiectarea și implementarea limbajului de asamblare puternic tipizat TAL [1] (Typed Assembly Language).
Versiunea 1.0 a compilatorului a fost lansată pe 8 mai 2006 . Se rulează în medii POSIX pe 32 de biți : Linux , Cygwin / Windows , MacOS și BSD . Distribuit în conformitate cu termenii GNU GPL versiunea 2.0. În acest moment, proiectul este încheiat oficial cu formularea „obiective de cercetare atinse”. Unele dintre ideile de design sunt folosite în limbajul de programare Rust .
Cyclone se distinge de C în primul rând printr-o tastare mai strictă și, dacă este necesar, prin introducerea de verificări de rulare, de exemplu, pentru respectarea limitelor matricei . Lucrul semnificativ extins și formalizat cu pointeri , cu toate acestea, metodele aritmetice pointer familiare programatorilor C continuă să funcționeze. Multe caracteristici de confort din C++ , C99 și GCC au fost adăugate limbajului . A fost introdus un nou tip de date @tagged union - un analog al c- union care stochează informații despre ce tip de date stochează în prezent.
Cele mai mari inovații sunt legate de împrumut de idei pentru lucrul cu tipuri de date din limbajul ML . Acesta este un sistem flexibil de tastare statică cu suport pentru inferența de tip , care facilitează descrierea diferitelor structuri recursive ( liste , arbori etc.) și permite utilizarea polimorfismului și a programării generice . Programatorul are control deplin asupra procesului de potrivire a tipurilor .
Noul limbaj este foarte aproape de C, ceea ce permite ca aplicațiile scrise în C să fie portate la acesta cu un efort minim. În special, creatorii lui Cyclone au dezvoltat un server web simplu despre care spun ei că este complet imun la erori și vulnerabilități comune .
Limbaje de programare | |
---|---|
|