PROGRAMMING LANGUAGES AS ABSTRACT DATA TYPES: DEFINITION AND IMPLEMENTATION

JOSEPH HENRY FASEL, Purdue University

Abstract

We demonstrate that a uniformity of approach to both the definition and implementation of programming languages is obtained by regarding them as abstract data types; that is, as collections of operators. These operators include syntactic constructors, evaluators of expressions, and executors of programs. We study the algebraic specification of abstract data types by means of sets of first-order equations involving the operators and universally quantified variables, derive some results on the relative power of specification techniques, and define the notion of an implementation of an algebraically specified data type. We investigate the application of algebraic semantics to programming languages by defining a small language algebraically, and comparing this definition to Vienna, Scott-Strachey, and Floyd-Hoare definitions of the same language. We define a simple machine as an abstract data type, and present an algebraic treatment of an implementation of the programming language in terms of the machine.

Degree

Ph.D.

Subject Area

Computer science

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS