1994 · 335 citations · 21 references
ComputingComputer ScienceCompilersFormal MethodsProgramming LanguagesData-flow AnalysisFunctional ProgrammingMemory HierarchyRecursion TheoryType CheckingType SystemsLambda CalculusMemory DemandsPolymorphic RecursionPolymorphism StudiesRecursionRecursive FunctionsType-level ProgrammingTyped Lambda Calculus
We present a translation scheme for the polymorphically typed call-by-value λ-calculus. All runtime values, including function closures, are put into regions. The store consists of a stack of regions. Region inference and effect inference are used to infer where regions can be allocated and de-allocated. Recursive functions are handled using a limited form of polymorphic recursion. The translation is proved correct with respect to a store semantics, which models as a region-based run-time system. Experimental results suggest that regions tend to be small, that region allocation is frequent and that overall memory demands are usually modest, even without garbage collection.
21
A theory of type polymorphism in programming
Robin Milner · Journal of Computer and System Sciences · 1978 · 2.2K citations · Full text
Principal type-schemes for functional programs
Robin Milner · 1982 · 1.1K citations
List processing in real time on a serial computer
Henry G. Baker · Communications of the ACM · 1978 · 592 citations · Full text