Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Essentials of programming languages (2nd ed.)
Essentials of programming languages (2nd ed.)
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
DrScheme: a programming environment for Scheme
Journal of Functional Programming
The design and implementation of a dataflow language for scriptable debugging
Automated Software Engineering
A tail-recursive semantics for stack inspections
ESOP'03 Proceedings of the 12th European conference on Programming
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
Given the widespread use of memory-safe languages, students must understand garbage collection well. Following a constructivist philosophy, an effective approach would be to have them implement garbage collectors. Unfortunately, a full implementation depends on substantial knowledge of compilers and runtime systems, which many courses do not cover or cannot assume. This paper presents an instructive approach to teaching GC, where students implement it atop a simplified stack and heap. Our approach eliminates enormous curricular dependencies while preserving the essence of GC algorithms. We take pains to enable testability, comprehensibility, and facilitates debugging. Our approach has been successfully classroom-tested for several years at several institutions.