|
A Safe Dialect of C Download! Cyclone Version 0.8.1 (3.2MB, 15 June 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.
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
Safe
and Flexible Memory Management in Cyclone, Mike Hicks, Greg
Morrisett,
Dan Grossman, and Trevor Jim. University of Maryland Technical
Report CS-TR-4514, July 2003.
This paper describes how we have integrated unique
pointers,
reference counted objects, and dynamic regions into the language.
Experience with Safe Manual Memory-Management in Cyclone,
Mike Hicks, Dan Grossman, Greg Morrisett, and Trevor Jim. In
2004 International Symposium on Memory Management, October 2004.
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:
Related projects: There are a number of projects with goals or techniques similar to Cyclone; we discuss some of them here.
Press: Cyclone has been of recent interest in the 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.