Algol-like Languages, Volume 2
To construct a compiler for a modern higher-level programming languagel one needs to structure the translation to a machine-like intermediate language in a way that reflects the semantics of the language. little is said about such struc turing in compiler texts that are intended to cover a wide variety of program ming languages. More is said in the Iiterature on semantics-directed compiler construction  but here too the viewpoint is very general (though limited to 1 languages with a finite number of syntactic types). On the other handl there is a considerable body of work using the continuation-passing transformation to structure compilers for the specific case of call-by-value languages such as SCHEME and ML [21 3]. ln this paperl we will describe a method of structuring the translation of ALGOL-like languages that is based on the functor-category semantics devel oped by Reynolds  and Oles [51 6]. An alternative approach using category theory to structure compilers is the early work of F. L. Morris 1 which anticipates our treatment of boolean expressionsl but does not deal with procedures. 2 Types and Syntax An ALGOL-like language is a typed lambda calculus with an unusual repertoire of primitive types. Throughout most of this paper we assume that the primi tive types are comm(and) int(eger)exp(ression) int(eger)acc(eptor) int(eger)var(iable) I and that the set 8 of types is the least set containing these primitive types and closed under the binary operation -.
What people are saying - Write a review
We haven't found any reviews in the usual places.
PROCEDURES AND LOCAL VARIABLES
Algol-like languages argument assert assignment axiom binary relation C. A. R. Hoare cartesian closed cartesian closed category coalgebras coherent spaces command compiler component composition Computer Science context corresponding data types defined definition denote domain editors elements example exp[int exp[T exponentiation expressions finite free identifiers full abstraction functor categories identity imperative programming induction integer interference interference-controlled Algol interpretation intuition isomorphism Lecture Notes Lemma linear functions linear logic local variables logical relation meaning monoidal morphism natural transformations non-interference non-local Notes in Computer O'Hearn object function object spaces operational semantics operations parametricity partial functions passive phrase types polymorphic procedure Programming Languages Proof properties Proposition recursion result rules Section semantics Sieber skip specification logic Springer-Verlag stack descriptor States(w store shapes strategy structure subroutine syntactic syntax Tennent terminal object Theorem tion tokens trace type comm var[N var[X
Page ii - Frank J. Oles Mathematical Sciences Department IBM TJ Watson Research Center Yorktown Heights, NY 10598