Closed types for a safe imperative MetaML

  • Authors:
  • C. Calcagno;E. Moggi;T. Sheard

  • Affiliations:
  • DISI, Universita di Genova, Genova, Italy (e-mail: calcagno@disi.unige.it);DISI, Universita di Genova, Genova, Italy (e-mail: moggi@disi.unige.it);Oregon Graduate Institute, Portland, OR, USA (e-mail: sheard@cse.ogi.edu)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper addresses the issue of safely combining computational effects and multi-stage programming. We propose a type system which exploits a notion of closed type, to check statically that an imperative multi-stage program does not cause run-time errors. Our approach is demonstrated formally for a core language called $\hbox{\sf MiniML}^{\sf meta}_{\sf ref}$. This core language safely combines multi-stage constructs and ML-style references, and is a conservative extension of $\hbox{\sf MiniML}_{\sf ref}$, a simple imperative subset of SML. In previous work, we introduced a closed type constructor, which was enough to ensure the safe execution of dynamically generated code in the pure fragment of $\hbox{\sf MiniML}^{\sf meta}_{\sf ref}$.