Abstract
In this chapter we reintroduce the objects of the preceding chapters as components of a functional programming language. Section 1 presents a (tentative) concrete syntax of finite and infinite data structure definitions, using either enumeration, or two powerful constructors: grafting and recursion. The classical product, sum, and list constructors are derived from those two constructors in a simple way. Section 2 introduces a concrete syntax for the two types of constants of the language: the states, which are enumerations of events, and the sequential algorithms, which are programs manipulating states,and are written using reading (“valof”) and writing (“output”) instructions.We show how to compile sequential algorithms (the “functional” constants) into states (the “basic” constants). Section 3 introduces the algebra of expressions, which is based on the constants of Section 2, and on chapter’s 1 categorical combinators. Section 4 introduces two different possible operational semantics: CDS01 and CDS02. Oneof them, CDS01, is formally described in Section 5, using conditional rewrite rules in the style of Structural Operational Semantics [PloOp].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 1993 Springer Science+Business Media New York
About this chapter
Cite this chapter
Curien, PL. (1993). CDS0: The Kernel of a Functional Language. In: Categorical Combinators, Sequential Algorithms, and Functional Programming. Progress in Theoretical Computer Science. Birkhäuser, Boston, MA. https://doi.org/10.1007/978-1-4612-0317-9_3
Download citation
DOI: https://doi.org/10.1007/978-1-4612-0317-9_3
Publisher Name: Birkhäuser, Boston, MA
Print ISBN: 978-1-4612-6704-1
Online ISBN: 978-1-4612-0317-9
eBook Packages: Springer Book Archive