Cyclone (limbaj de programare)

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 și istoricul proiectului

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 .

Prezentare generală a limbii

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 .

Vezi și

Note

  1. Limbajul de asamblare tastat . Consultat la 15 mai 2007. Arhivat din original pe 2 iunie 2007.

Surse

Link -uri