COLLECTED BY
Organization:
Internet Archive
The Internet Archive discovers and captures web pages through many different web crawls.
At any given time several distinct crawls are running, some for months, and some every day or longer.
View the web archive through the
Wayback Machine.
Web wide crawl with initial seedlist and crawler configuration from March 2011 using HQ software.
The Wayback Machine - https://web.archive.org/web/20111227232825/http://www.eecs.harvard.edu/~greg/cyclone/old_cyclone.html
Synopsis
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:
- Enforcing type safety (e.g., a cast from t1 to t2
is allowed only if it is safe to view a t1 as a t2)
- Not changing data representation or calling conventions
- Providing region-based, manual memory management
- Using a combination of type information and run-time checks to
prevent array-bound violations
- Wrapping the C standard library with appropriate run-time checks
as necessary (e.g., has a FILE already been closed)
Cyclone also provides modern features for convenient programming:
- Tagged unions
- ML-style datatypes
- Parametric polymorphism
- Pattern matching
- Exceptions
- Anonymous structs equivalent by structure
- Parameterized typedefs
- An extensive library for container types and other common
utilities
- A lexer generator and parser generator
- Function-level debugging with gdb and profiling with gprof
Software Distribution
The Cyclone compiler and tools, as well as some benchmark programs,
are freely available for download.
System Requirements:
- Cyclone is currently supported on x86 Linux, and on Windows
using Cygwin. Other platforms may
or
may not work (our install process tries to detect your configuration
and automatically create the necessary platform-specific
information). We have had some success on BSD, Irix, and Solaris
systems, but your mileage may vary. In particular,
system-dependent behavior is largely untested.
- You need to extract the files from the "gzipped
tarball" using gunzip and tar; under Windows, you can also do
this with Winzip.
- You need GNU make, a fairly recent version of gcc, a bash or ksh
shell, and various common utilities (awk, sed, grep). If you are
using Cygwin, all of these come with it. gcc and the utilities must
be in your path. Other make programs and C compilers will not
work.
- See the file INSTALL in the distribution for details.
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.
CVS Access
You can access the latest CVS sources by issuing the following command:
cvs -d
:pserver:anonymous@cvs.eecs.harvard.edu:/home/cyclone/cvsroot co
cyclone
Papers
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.
More information
Mailing Lists: We have
set up three mailing lists for public use:
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).
- Cyclone-l:
public discussion on the Cyclone language
- Cyclone-announce-l: announcements of new code
distributions
- The Cyclone bugs mailing list has been disabled due to SPAM.
If you encounter a problem, please contact greg at eecs dot harvard dot
edu and make sure to put Cyclone in the Subject line.
Credits: Cyclone was started as a joint project
of AT&T Labs Research
and Greg
Morrisett's group. The key developers include:
Trevor Jim
Greg Morrisett
Dan Grossman
Mike Hicks
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 been of recent interest in
the
press.
- Will
software development get hit by a Cyclone? John Viega, Security
Focus (www.securityfocus.com), December 7, 2001.
- "Cyclone"
blows computer bugs out of code, Will Knight, New Scientist
magazine on-line (NewScientist.com), November 16, 2001.
This
article led to a flurry of interest on Slashdot
(the papers above address many of the concerns and questions posted
during the discussion here).
- Secure future all
at
C, James Middleton, vnunet.com, November 21, 2001.
- New
Cyclone Programming Language: Bugs be Gone! Mark Joseph Edwards, NT
Security on-line, November 19, 2001.
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.