| Cyclone Programming Language |
Article Index for Cyclone |
Website Links For Cyclone |
Information AboutCyclone Programming Language |
| CATEGORIES ABOUT CYCLONE PROGRAMMING LANGUAGE | |
| c programming language family | |
|
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 the C Programming Language , while still maintaining the look and performance of C. To this end, Cyclone places the following restrictions upon programs:
In order to maintain the tool set that C programmers are used to, Cyclone provides the following extensions:
For a better high-level introduction to Cyclone, the reasoning behind Cyclone and the source of these lists, please see {Link without Title} . Although Cyclone looks, in general, much like C , it should be thought of as a C-like language. Pointer/reference types Cyclone implements three kinds of Reference (following C terminology these are called pointers):
The purpose of introducing these new pointer types is to avoid common problems when using pointers. Take for instance a function, called foo that takes a pointer to an int:
Although the person who wrote the function foo could have inserted NULL checks, let us assume that for performance reasons they did not. Calling foo(NULL); will result in Undefined Behavior (typically, although not necessarily, a SIGSEGV being sent to the application). To avoid such problems, Cyclone introduces the @ pointer type, which can never be NULL. Thus, the "safe" version of foo would be:int foo(int @);
{ int iter = 0; if (s == NULL) return 0; Dangling pointers and region analysis |
|
|