| 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 was jointly developed by Greg Morrisett 's group at Cornell University and AT&T Labs Research in the early 2000s. It received a certain amount of publicity in November 2001. As of June 15, 2004, the Cyclone compiler stands at version 0.8.1. 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 . With that, let us look at more features of the language, in depth. 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 |
|
|