|
Showing 1 - 5 of
5 matches in All Departments
In recent years there has been a remarkable convergence of interest
in programming languages based on ALGOL 60. Researchers interested
in the theory of procedural and object-oriented languages
discovered that ALGOL 60 shows how to add procedures and object
classes to simple imperative languages in a general and clean way.
And, on the other hand, researchers interested in purely functional
languages discovered that ALGOL 60 shows how to add imperative
mechanisms to functional languages in a way that does not
compromise their desirable properties. Unfortunately, many of the
key works in this field have been rather hard to obtain. The
primary purpose of this collection is to make the most significant
material on ALGoL-like languages conveniently available to graduate
students and researchers. Contents Introduction to Volume 1 1 Part
I Historical Background 1 Part n Basic Principles 3 Part III
Language Design 5 Introduction to Volume 2 6 Part IV
Functor-Category Semantics 7 Part V Specification Logic 7 Part VI
Procedures and Local Variables 8 Part vn Interference,
Irreversibility and Concurrency 9 Acknowledgements 11 Bibliography
11 Introduction to Volume 1 This volume contains historical and
foundational material, and works on lan guage design. All of the
material should be accessible to beginning graduate students in
programming languages and theoretical Computer Science."
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 [1] 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 [4] and
Oles [51 6]. An alternative approach using category theory to
structure compilers is the early work of F. L. Morris [7]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 -.
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 [1] 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 [4] and
Oles [51 6]. An alternative approach using category theory to
structure compilers is the early work of F. L. Morris [7]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 -.
In recent years there has been a remarkable convergence of interest
in programming languages based on ALGOL 60. Researchers interested
in the theory of procedural and object-oriented languages
discovered that ALGOL 60 shows how to add procedures and object
classes to simple imperative languages in a general and clean way.
And, on the other hand, researchers interested in purely functional
languages discovered that ALGOL 60 shows how to add imperative
mechanisms to functional languages in a way that does not
compromise their desirable properties. Unfortunately, many of the
key works in this field have been rather hard to obtain. The
primary purpose of this collection is to make the most significant
material on ALGoL-like languages conveniently available to graduate
students and researchers. Contents Introduction to Volume 1 1 Part
I Historical Background 1 Part n Basic Principles 3 Part III
Language Design 5 Introduction to Volume 2 6 Part IV
Functor-Category Semantics 7 Part V Specification Logic 7 Part VI
Procedures and Local Variables 8 Part vn Interference,
Irreversibility and Concurrency 9 Acknowledgements 11 Bibliography
11 Introduction to Volume 1 This volume contains historical and
foundational material, and works on lan guage design. All of the
material should be accessible to beginning graduate students in
programming languages and theoretical Computer Science."
|
You may like...
Braai
Reuben Riffel
Paperback
R495
R359
Discovery Miles 3 590
This Is Why
Paramore
CD
R148
R138
Discovery Miles 1 380
Loot
Nadine Gordimer
Paperback
(2)
R383
R310
Discovery Miles 3 100
|
Email address subscribed successfully.
A activation email has been sent to you.
Please click the link in that email to activate your subscription.