Share This Author
Contracts for higher-order functions
This paper introduces λcon, a typed lambda calculus with assertions for higher-order functions, which models the assertion monitoring system that is employed in DrScheme and establishes basic properties of the model (type soundness, etc.).
Semantics Engineering with PLT Redex
This text is the first comprehensive presentation of reduction semantics in one volume and introduces the first reliable and easy-to-use tool set for such forms of semantics, and presents a framework for the formulation of language models as PLT Redex models.
Well-Typed Programs Can't Be Blamed
We introduce the blame calculus , which adds the notion of blame from Findler and Felleisen's contracts to a system similar to Siek and Taha's gradual types and Flanagan's hybrid types . We…
How to design programs: an introduction to programming and computing
This introduction to programming places computer science in the core of a liberal arts education and focuses on the program design process, which fosters a variety of skills -- critical reading, analytical thinking, creative synthesis, and attention to detail -- that are important for everyone, not just future computer programmers.
DrScheme: a programming environment for Scheme
Beyond the ordinary programming environment tools, DrScheme provides an algebraic stepper, a context-sensitive syntax checker, and a static debugger that explains specific inferences in terms of a value-flow graph, selectively overlaid on the program text.
Blame for all
This work presents a system that permits a value of dynamic type to be cast to a polymorphic type and vice versa, with relational parametricity enforced by a kind of dynamic sealing along the lines proposed by Matthews and Ahmed (2008) and Neis, Dreyer, and Rossberg (2009).
Operational semantics for multi-language programs
This paper abstracts away the low-level details of interoperability like garbage collection and representation coherence, and lets us focus on semantic properties like type-safety and observable equivalence, which sheds light on real multi-language systems and tools such as the JNI, SWIG, and Haskell's stable pointers.
Revised6 Report on the Algorithmic Language Scheme
- Michael Sperber, R. K. Dybvig, M. Flatt, A. V. Straaten, R. Findler, Jacob Matthews
- Computer ScienceJournal of Functional Programming
- 1 August 2009
Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.
Run your research: on the effectiveness of lightweight mechanization
Redex is a domain-specific language for semantic models that is embedded in the Racket programming language and comes with tools for the semantics engineering life cycle.
Contracts as Pairs of Projections
A model for software contracts that follows Dana Scott's program by interpreting contracts as projections is developed, providing a definitive answer to the questions raised by Blume and McAllester's work.