×

Equational logic as a programming language. (English) Zbl 0636.68004

MIT Press Series in the Foundations of Computing. Cambridge, Mass. - London: MIT Press. XV, 296 p.; $ 25.00 (1985).
This book describes an ongoing equational programming project that started in 1975. Within the project an equational programming language interpreter has been designed and implemented. The first part of the text (Chapters 1-10) provides a user’s manual for the current implementation. The remaining sections cover the following topics: programming techniques and applications, theoretical foundations, implementation issues.
Giving a brief account of the project’s history (Chapter 11), the author devotes a large part of the text to techniques of equational programming at different levels of abstraction. Chapter 12 discusses low-level techniques including the distinction of constructors and defined functions, the formulation of conditional expressions and error and exception handling.
High-level techniques are treated in Chapter 15 by discussing concurrency, nondeterminism, the relationship to dataflow programs and the transformation of recursive programs called dynamic programming. In Chapter 16 the author shows how to efficiently implement common data structures by equational programs. Modularity is discussed in Chapter 14.
Several applications are also presented in the book. The author demonstrates the versatility of equational programming style by implementing syntactic manipulation algorithms (Chapter 13).
Theoretical foundations are introduced in Chapter 17 (term rewriting systems, herein called term reduction systems). In Chapter 19 the author raises the question of a universal equational machine language and discusses the suitability of different variants of the combinator calculus for this purpose.
Implementation issues are covered in Chapters 18 and 20 focussed around algorithms for efficient pattern matching, sequencing and reduction. Aspects of design and coordination of the syntactic processors are presented as well.

MSC:

68-02 Research exposition (monographs, survey articles) pertaining to computer science
68N01 General topics in the theory of software
03B70 Logic in computer science
68T15 Theorem proving (deduction, resolution, etc.) (MSC2010)
68Q65 Abstract data types; algebraic specification
03B40 Combinatory logic and lambda calculus