Programs are often structured around the idea that different pieces of code comprise distinct principals, each with a view of its environment. Typical examples include the module...
Steve Zdancewic, Dan Grossman, J. Gregory Morriset...
Languages such as Java, ML, Scheme, and Haskell provide automatic storage management, that is, garbage collection. The two fundamental operations performed on a garbagecollected h...
ML-style modules are valuable in the development and maintenance of large software systems, unfortunately, none of the existing languages support them in a fully satisfactory mann...
This paper defines an extended polymorphic type system for an ML-style programming language, and develops a sound and complete type inference algorithm. Different from the conve...
We propose a conservative extension of the polymorphic lambda calculus (A5B ) as an intermediate language for compiling languages with name-based class and interface hierarchies. ...
d Abstract) Assaf J. Kfoury∗ Boston University http://www.cs.bu.edu/˜kfoury Harry G. Mairson† Brandeis University http://www.cs.brandeis.edu/˜mairson Franklyn A. Turbak‡ We...
Assaf J. Kfoury, Harry G. Mairson, Franklyn A. Tur...
Many properties of parametric, polymorphic functions can be determined simply by inspection of their types. Such results are usually proven using Reynolds's parametricity the...
Type dispatch constructs are an important feature of many programming languages. Scheme has predicates for testing the runtime type of a value. Java has a class cast expression an...
Deforestation optimises a functional program by transforming it into another one that does not create certain intermediate data structures. Short cut deforestation is a deforestat...
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and pro...
Matthew Flatt, Robert Bruce Findler, Shriram Krish...