Multiple Strongly Typed Evaluation Phases.
Abstract
This work introduces the programming language notion of multiple strongly typed evaluation phases. or simply, phases. In general, a program might be executed through several phases. Each phase requires its own input, and acts as compiletime relative to the next phase, or runtime relative to the previous phase. Thus, each phase is the execution of a program, and may play the role of compiletime or runtime. The notion of phases offers a framework for understanding compiled strongly typed languages, and works toward an improved, strongly typed language basis for reusable software. The research shows how types can be manipulated as first-class values and notions of compiletime and runtime can be unified, without sacrificing strong typing (compiletime type checking) or runtime speed. Type checking and expression evaluation are performed using the same evaluation mechanism. The apparent conflict of allowing types as first-class values, yet enforcing compiletime type checking, is resolved by the notion of multiple phases: though types may be manipulated as first-class values during one phase, the computed type values become invariants for the next phase.
Document Details
- Document Type
- Technical Report
- Publication Date
- Oct 01, 1986
- Accession Number
- ADA178803
Entities
People
- David Booth
Organizations
- University of Southern California