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:
NULLchecks are inserted to prevent segmentation faults- Pointer arithmetic is limited
- Pointers must be initialized before use (this is enforced by definite assignment analysis)
- Dangling pointers are prevented through region analysis and limits on
free - Only "safe" casts and unions are allowed
gotointo scopes is disallowedswitchlabels in different scopes are disallowed- Pointer-returning functions must execute
return setjmpandlongjmpare not supported
To maintain the tool set that C programmers are used to, Cyclone provides the following extensions:
- Never-
NULLpointers do not requireNULLchecks - "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
setjmpandlongjmp
For a better high-level introduction to Cyclone, the reasoning behind Cyclone and the source of these lists, see this paper.
Cyclone looks, in general, much like C, but it should be viewed as a C-like language.
Read more about this topic: Cyclone (programming Language)
Famous quotes containing the words language and/or features:
“Play for young children is not recreation activity,... It is not leisure-time activity nor escape activity.... Play is thinking time for young children. It is language time. Problem-solving time. It is memory time, planning time, investigating time. It is organization-of-ideas time, when the young child uses his mind and body and his social skills and all his powers in response to the stimuli he has met.”
—James L. Hymes, Jr. (20th century)
“It is a tribute to the peculiar horror of contemporary life that it makes the worst features of earlier timesthe stupefaction of the masses, the obsessed and driven lives of the bourgeoisieseem attractive by comparison.”
—Christopher Lasch (b. 1932)