Издательство Birkh?user, 1993, -424 pp.
The goal of this monograph is to give a concrete approach to the semantics of sequential programming languages, with application to the design and implementation of programming languages. Just as machines do not manipulate numbers, but representations of numbers, we do not present sets and functions, but concrete representations of these sets and functions. The motivation behind our constructions is to ensure that any two program pieces have the same meaning as soon as they behave the same way on a computer. Restricting this known problem, entitled the full abstraction problem, to sequential programming languages implies giving a semantic account to sequentiality. Sequential languages are languages in which constructs are evaluated one at a time; as a consequence, if the evaluation of a given construct loops, the next construct in the program text will not be evaluated. The construction of sequential objects in the semantics has led us to replace sets and functions with descriptions of sets and functions: concrete data structures and sequential algorithms. A sequential algorithm is a pair of a function and a computational strategy. The intensionality of our model, that is, the fact that it does not account only for the input-output behavior of the interpreted programs and procedures, constitutes one of its most original features. The concrete nature of our semantics has led us naturally to the design of a programming language, calles CDS0, where the full abstraction property we sought holds true.
Categorical Combinators
Sequential Algorithms
CDSO:The Keel of the Functional Language
The Full Abstraction Problem
The goal of this monograph is to give a concrete approach to the semantics of sequential programming languages, with application to the design and implementation of programming languages. Just as machines do not manipulate numbers, but representations of numbers, we do not present sets and functions, but concrete representations of these sets and functions. The motivation behind our constructions is to ensure that any two program pieces have the same meaning as soon as they behave the same way on a computer. Restricting this known problem, entitled the full abstraction problem, to sequential programming languages implies giving a semantic account to sequentiality. Sequential languages are languages in which constructs are evaluated one at a time; as a consequence, if the evaluation of a given construct loops, the next construct in the program text will not be evaluated. The construction of sequential objects in the semantics has led us to replace sets and functions with descriptions of sets and functions: concrete data structures and sequential algorithms. A sequential algorithm is a pair of a function and a computational strategy. The intensionality of our model, that is, the fact that it does not account only for the input-output behavior of the interpreted programs and procedures, constitutes one of its most original features. The concrete nature of our semantics has led us naturally to the design of a programming language, calles CDS0, where the full abstraction property we sought holds true.
Categorical Combinators
Sequential Algorithms
CDSO:The Keel of the Functional Language
The Full Abstraction Problem