On Adding Garbage Collection and Runtime Types to a Strongly-Typed, Statically-Checked, Concurrent Language
Paul Rovner · 2010
Enough is known now about garbage collection, runtime types, strong-typing, static-checking and concurrency that it is possible to explore what happens when they are combined in a real programming system. Storage management is one of a few central issues through which one can get a good view of the design of an entire system. Tensions between ease of integration and the need for protection; between generality, simplicity, flexibility, extensibility and efficiency are all manifest when assumptions and attitudes about managing storage are studied. And deep understanding follows best from the analysis of systems that people use to get real work done. This paper is not for those who seek arguments pro or con about the need for these features in programming systems; such issues are for other papers. This one assumes these features to be good and describes how they combine and interact in Cedar, a programming language and environment designed to help programmers build moderate-sized experimental systems for moderate numbers of people to test and use. CR Categories and .Subject Descriptors: D.2.2 [Software-Tools and Techniques], D.2.6 [Software Programming Environments], D.3.3 [programming Languages Language Constructs], D.4.2 [Operating Systems Storage Management]. Additional