Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Prospects for functional programming in software engineering
Banâtre J., Jones S., Le Métayer D. (ed), Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387538525)
Date Reviewed: Aug 1 1992

ESPRIT (the European strategic programme for research and development in information technology) is directed toward collaborative research and development efforts among industry, academia, and research centers in the member states. This book represents some ideas of a team of researchers who worked on an ESPRIT project involving the complexity of, the parallel execution of, and analysis techniques for functional programs. The scope of the book is much broader than this, however, and in fact it gives a good overview of both the theoretical and the practical aspects of functional programming.

The eight chapters fit together well, in spite of their distinct authors. The first two chapters are introductory. Chapter 1, “About Programming Environments,” describes the process of developing large software programs, programming environments (illustrated by the Cedar system), specifications, and desired properties of a functional programming environment. Chapter 2, “Aspects of Functional Programming,” surveys properties of functional languages, briefly describes LISP and ML and implementation techniques for functional languages, introduces notions of semantics, and defines the reference language used in the rest of the book.

Chapter 3, “Program Analysis by Abstract Interpretation,” briefly describes sources of inefficiency of functional languages and methods for solving these problems in order to motivate the discussion of abstract interpretation. The abstract interpretation method is then applied in chapter 4, “Compile-time Garbage Collection by Sharing Analysis,” to optimize the implementation of functional language memory management.

In chapter 5, “Analysis of Functional Programs by Program Transformation,” program transformations are introduced and applied to time complexity, potential parallelism, and program memory complexity analyses. Chapter6, “From Lambda Calculus to Machine Code by Program Transformation,” presents a method for transforming lambda expressions into expressions defined in terms of combinators.

Chapter 7, “On Input and Output in Functional Languages,” discusses how streams can be exploited to achieve interactive computations; presents a text editor as an example; examines programming styles and the use of higher-order functions; and considers networks, parallelism, nondeterminism, and functional implementation of an operating system. Chapter 8, “For Imperative Programmers,” investigates the relationship between the functional and imperative paradigms; considers denotational semantics as a method for translating imperative to functional languages; compares the two paradigms from the point of view of program development and correctness proofs; and discusses how history-sensitive computations can be expressed in a purely functional way. References are given at the end of each chapter, but none is more recent than 1989, undoubtedly due to publication delay.

This book covers the whole range of issues in functional languages, from the practical to the theoretical. The authors argue convincingly in favor of their thesis that functional languages could form the “basis of a broad spectrum language which could be used in all stages of the software development process” and that the problems of inefficiency can be overcome by “exploiting inherent qualities of functional languages and powerful program manipulation methods.”

The lucid discussion and historical remarks throughout make interesting reading, not only for researchers in the field, but also for the novice. The book’s usefulness as a reference would have been enhanced if an index had been provided.

Reviewer:  D. Bollman Review #: CR115160
Bookmark and Share
 
Applicative (Functional) Programming (D.1.1 )
 
 
Languages (D.2.1 ... )
 
 
Formal Definitions And Theory (D.3.1 )
 
 
Programming Environments (D.2.6 )
 
Would you recommend this review?
yes
no
Other reviews under "Applicative (Functional) Programming": Date
Functional programming with Hope
Bailey R., Ellis Horwood, Upper Saddle River, NJ, 1990. Type: Book (9780133382372)
May 1 1992
An introduction to functional programming
Bird R. (ed), Wadler P., Prentice Hall International (UK) Ltd., Hertfordshire, UK, 1988. Type: Book (9780134841892)
May 1 1992
Functional programming with Miranda
Holyer I., Pitman Publishing, London, UK, 1991. Type: Book (9780273034537)
May 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy