Cyclone (programming language)

related topics
{math, number, function}
{area, part, region}
{system, computer, user}
{law, state, case}
{film, series, show}
{language, word, form}

The Cyclone programming language is intended to be a safe dialect of the C language. Cyclone is designed to avoid buffer overflows and other vulnerabilities that are endemic in C programs, without losing the power and convenience of C as a tool for system programming.

Cyclone development was started as a joint project of AT&T Labs Research and Greg Morrisett's group at Cornell in 2001. Version 1.0 was released on May 8, 2006.


Language features

Cyclone attempts to avoid some of the common pitfalls of C, while still maintaining its look and performance. To this end, Cyclone places the following limits on programs:

To maintain the tool set that C programmers are used to, Cyclone provides the following extensions:

  • Never-NULL pointers do not require NULL checks
  • "Fat" pointers support pointer arithmetic with run-time bounds checking
  • Growable regions support a form of safe manual memory management
  • Garbage collection for heap-allocated values
  • Tagged unions support type-varying arguments
  • Injections help automate the use of tagged unions for programmers
  • Polymorphism replaces some uses of void *
  • varargs are implemented as fat pointers
  • Exceptions replace some uses of setjmp and longjmp

Full article ▸

related documents
Möbius function
Banach algebra
Elementary function
Square-free integer
Pre-Abelian category
Principal ideal domain
Bounded set
String searching algorithm
Multiplication table
Fermat's little theorem
Division ring
Enriched category
Caesar cipher
Linear classifier
Binary space partitioning
Floor and ceiling functions
Counting sort
Ternary numeral system
Elliptic function
Loss of significance
Iterative method
Twin prime