Cyclone: a Type-safe Dialect of C. Dan Grossman, Michael Hicks, Trevor Jim, and Greg Morrisett. C/C++ Users Journal, 23(1), January 2005.
Cyclone is an effort to bring safety to C. This article briefly introduces Cyclone.
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
A longer, but earlier overview article about Cyclone.
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
Describes Cyclone’s core memory management idea: regions. 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. In Proceedings of the ACM International Symposium on Memory Management (ISMM), pages 73-84, October 2004.
This paper describes how we have integrated unique pointers, reference counted objects, and dynamic regions into the language, to reduce or eliminate the need for garbage collection.
Safe Manual Memory Management in Cyclone. Nikhil Swamy, Michael Hicks, Greg Morrisett, Dan Grossman, and Trevor Jim. Science of Computer Programming, 2006. Special issue on memory management.
Expands ISMM conference paper by introducing reaps, alias qualifiers and more benchmark results.
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.
Earlier tech report, superseded by the above papers.
Formal development for supporting concurrency in Cyclone. Unfortunately, we have yet to implement it.
Describes Cyclone’s use of polymorphic types (commonly found in languages like Standard ML) for better code and data structure reuse.
Linear Regions Are All You Need. Matthew Fluet, Amal Ahmed, and Greg Morrisett. 2006 European Symposium on Programming.
Defines and proves sound a calculus that unites regions with unique pointers.