A Safe Dialect of C Download! Cyclone Version 0.8.2a (5.1MB, 8 September 2004) Read! the documentation (download) Join! Cyclone mailing lists or send comments Cyclone is mirrored at Harvard and AT&T Labs Research. |
Cyclone is a programming language based on C that is safe, meaning that it rules out programs that have buffer overflows, dangling pointers, format string attacks, and so on. High-level, type-safe languages, such as Java, Scheme, or ML also provide safety, but they don't give the same control over data representations and memory management that C does (witness the fact that the run-time systems for these languages are usually written in C.) Furthermore, porting legacy C code to these languages or interfacing with legacy C libraries is a difficult and error-prone process. The goal of Cyclone is to give programmers the same low-level control and performance of C without sacrificing safety, and to make it easy to port or interface with legacy C code.
Cyclone achieves safety while remaining compatible with C by:
The Cyclone compiler and tools, as well as some benchmark programs,
are freely available for download.
Compiler |
Documentation |
Benchmarks |
Applications |
---|---|---|---|
v0.8.2 |
v0.8.2 |
||
v0.8.1 |
|||
v0.8 |
v0.8 |
v0.8 |
webserver v0.1 |
v0.7 |
v0.7 |
||
v0.6 |
v0.6 |
||
v0.5 |
|||
v0.4 |
v0.4 |
System Requirements:
Licensing: The files in the distribution come from a variety of sources and so come under a variety of licenses. Please see each file and directory for its licensing terms.
Cyclone: A Safe Dialect of C,
Trevor Jim, Greg
Morrisett, Dan Grossman,
Michael Hicks, James Cheney, and Yanling Wang. USENIX Annual
Technical Conference,
pages 275--288, Monterey, CA, June 2002.
PS
PDF DVI
Region-based Memory
Management in Cyclone, Dan Grossman, Greg Morrisett, Trevor
Jim, Michael Hicks, Yanling Wang, and James Cheney. ACM
Conference on Programming Language Design and Implementation, pages
282--293, Berlin,
Germany, June, 2002.
PS PDF
DVI
Cornell CS Technical Report TR2001-1856 contains the
full definition and safety proof for the formal language sketched in
the paper: PS PDF
DVI
Experience with Safe Manual Memory
Management in Cyclone, Michael Hicks, Greg Morrisett,
Dan Grossman, and Trevor Jim. ACM International Symposium on
Memory
Management, Vancouver, Canada, October 2004.
PDF
This paper describes how we have integrated unique
pointers,
reference counted objects, and dynamic regions into the language and
includes a study on the performance benefit of using these features. An
earlier, and slightly different, version of this paper appeared as a
University
of Maryland Technical Report CS-TR-4514, July 2003.
Go to http://lists.cs.cornell.edu/mailman/listinfo/ to subscribe/unsubscribe, or click the links below to send a message (only list members may submit to Cyclone-l).
Credits: Cyclone was started as a joint project of AT&T Labs Research and Greg Morrisett's group. The key developers include:
Other people that have made strong contributions to the project
include:
James Cheney
Matthew Harris
Yanling Wang
Mathieu Baudet
Bart Samwell
Matthew Fluet
Dan Wang
Related projects: There are a number of projects with goals or techniques similar to Cyclone; we discuss some of them here.
Press: Cyclone has received some interesting press.
We are also listed in the Open Directory Project; the Cyclone page is here.
Users: Cyclone currently enjoys a small user community. Please let us know if you are using Cyclone and for what purpose so that we might add your project to our list below.