Using Haskell to Implement Syntactic Control of Interference

Thumbnail Image
Warren, Jared
programming , type system , interference , haskell , embedding , definitional interpreter , denotational semantics , domain-specific language , imperative , functional
Interference makes reasoning about imperative programs difficult but it can be controlled syntactically by a language's type system, such as Syntactic Control of Interference (SCI). Haskell is a purely-functional, statically-typed language with a rich type system including algebraic datatypes and type classes. It is popular as a defining language for definitional interpreters of domain-specific languages, making it an ideal candidate for implementation of definitional interpreters for SCI and Syntactic Control of Interference Revisited (SCIR), a variant that improves on SCI. Inference rules and denotational semantics functions are presented for PCF, IA, SCI, and SCIR. An extension to Haskell98 is used to define Haskell functions for those languages' semantics and to define type constructions to statically check their syntax. The results in applied programming language theory demonstrate the suitability and techniques of Haskell for definitional interpretation of languages with rich type systems.
External DOI