arXiv · 1109.0785
Resumption-based big-step and small-step interpreters for While with interactive I/O
Abstract
In this tutorial, we program big-step and small-step total interpreters for the While language extended with input and output primitives. While is a simple imperative language consisting of skip, assignment, sequence, conditional and loop. We first develop trace-based interpreters for While. Traces are potentially infinite nonempty sequences of states. The interpreters assign traces to While programs: for us, traces are denotations of While programs. The trace is finite if the program is terminating and infinite if the program is non-terminating. However, we cannot decide (i.e., write a program to determine), for any given program, whether its trace is finite or infinite, which amounts to deciding the halting problem. We then extend While with interactive input/output primitives. Accordingly, we extend the interpreters by generalizing traces to resumptions. The tutorial is based on our previous work with T. Uustalu on reasoning about interactive programs in the setting of constructive type theory.
Explore related subjects
Keep this discovery
Keiko Nakata. 2011-09-05. Resumption-based big-step and small-step interpreters for While with interactive I/O. https://doi.org/10.4204/eptcs.66.12
Cite the original work for its findings. Save a collection to share your selection of sources.