Cyclone (programming language): Difference between revisions

Content deleted Content added
External links: rm dead link
Line 41:
 
To maintain the tool set that C programmers are used to, Cyclone provides the following extensions:
* '''Never-<code>NULL</code> pointers''' do not require <code>NULL</code> checks
* '''"Fat" pointers''' support pointer arithmetic with run-time [[bounds checking]]
* '''Growable regions''' support a form of safe manual memory management
* '''[[Garbage collection (computer science)|Garbage collection]]''' for heap-allocated values
* '''[[Tagged union]]s''' support type-varying arguments
* '''Injections''' help automate the use of tagged unions for programmers
* '''[[Polymorphism (computer science)|Polymorphism]]''' replaces some uses of [[void pointer|<code>void *</code>]]
* '''varargs''' are implemented as fat pointers
* '''[[Exception handling|Exceptions]]''' replace some uses of <code>setjmp</code> and <code>longjmp</code>
 
For a better high-level introduction to Cyclone, the reasoning behind Cyclone and the source of these lists, see [http://www.cs.umd.edu/projects/cyclone/papers/cyclone-safety.pdf this paper].