@article {14726, title = {Region-based memory management in cyclone}, journal = {SIGPLAN Not.}, volume = {37}, year = {2002}, month = {2002/05//}, pages = {282 - 293}, abstract = {Cyclone is a type-safe programming language derived from C. The primary design goal of Cyclone is to let programmers control data representation and memory management without sacrificing type-safety. In this paper, we focus on the region-based memory management of Cyclone and its static typing discipline. The design incorporates several advancements, including support for region subtyping and a coherent integration with stack allocation and a garbage collector. To support separate compilation, Cyclone requires programmers to write some explicit region annotations, but a combination of default annotations, local type inference, and a novel treatment of region effects reduces this burden. As a result, we integrate C idioms in a region-based framework. In our experience, porting legacy C to Cyclone has required altering about 8\% of the code; of the changes, only 6\% (of the 8\%) were region annotations.}, isbn = {0362-1340}, doi = {10.1145/543552.512563}, url = {http://doi.acm.org/10.1145/543552.512563}, author = {Grossman,Dan and Morrisett,Greg and Jim,Trevor and Hicks, Michael W. and Wang,Yanling and Cheney,James} }