32 research outputs found
Step-Indexed Normalization for a Language with General Recursion
The Trellys project has produced several designs for practical dependently
typed languages. These languages are broken into two
fragments-a_logical_fragment where every term normalizes and which is
consistent when interpreted as a logic, and a_programmatic_fragment with
general recursion and other convenient but unsound features. In this paper, we
present a small example language in this style. Our design allows the
programmer to explicitly mention and pass information between the two
fragments. We show that this feature substantially complicates the metatheory
and present a new technique, combining the traditional Girard-Tait method with
step-indexed logical relations, which we use to show normalization for the
logical fragment.Comment: In Proceedings MSFP 2012, arXiv:1202.240
Linear Type Systems for Communication
Enhancing the type system of a programming language brings benefits on many fronts. We define and explore a simple concurrent functional language in a linear typing discipline, showing how more powerful types can lead to more controlled interaction between threads.
Modal Types for Mobile Code (Thesis Proposal) ∗
Modal logic is a family of logics with the ability to simultaneously reason about truth from multiple perspectives. Our previous work showed how the modal logic Intuitionistic S5 could form the basis for a simple lambda calculus for spatially distributed programs. I propose here a thesis project to demonstrate the efficacy and elegance of modal type systems for controlling spatially distributed resources in a programming language. The project has strong components of both theory and practice: the design of ML5, a new programming language for distributed computing, and its implementation. I present technical details for the language and implementation where they have been completed, and a plan for the work to be done where they have not.