Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Programming in POP-11
Laventhol J., Blackwell Scientific Publications, Ltd., Oxford, UK, 1987. Type: Book (9789780632015078)
Date Reviewed: Jun 1 1989

This book provides a good description of the general-purpose programming language POP-11, which was first implemented by Steve Hardy at the University of Sussex. POP-11 is a descendant of POP-2 [1], which was developed at the University of Edinburgh and is named after Robin Popplestone, one of its original designers. Though it was developed for teaching and research in artificial intelligence (AI), POP-11 is being used more and more for other tasks, such as graphics and compiler and VLSI design. It is currently available from the University of Sussex as part of the POPLOG programming environment.

POP-11 offers a variety of powerful features. It supports an incremental compiler, which makes interactive programming easy. Like LISP and Prolog, POP-11 does not distinguish between procedures and data, which allows it to support a number of features required for high-level abstraction. Built on an object-oriented style of programming, POP-11 provides easy support for generic procedures, comes with a powerful pattern matcher that uses the list as its underlying data structure, and supports user-defined data types and classes.

In general, this book presents the language in a simple and readable manner. As the foreword says, it is intended for those who want to learn POP-11 as well as those who want to know more about the language. The book is quite introductory and requires practically no computer science background. The early chapters are easy to follow; in fact, an experienced programmer could read the first eight chapters in one stretch. Then the going gets a bit tough as the book unravels the advanced features of the language, the complexities of the interpreter, and the inner details of the system. This part will interest only those who have mastered the basics and want to probe deeper.

This book treats POP-11 as a general-purpose programming language; ‘AI’ and related terms hardly ever appear in it. The author justifies this approach in his afterword, claiming that a language with such rich and powerful abstraction features is very useful to any programmer, not just those in the AI community. One of his intentions in writing the book was to promote the use of POP-11 in other areas where efficiency is a serious issue. Hence, the efficiency of programs is discussed wherever it is important, and methods of avoiding inefficiency are pointed out. Examples accompany the discussions of most concepts and make the book quite readable. Most of these examples are self-contained, so the reader can easily try them out on a machine. Laventhol presents the important features of the language well (e.g., stack operations, untyped variables, procedures as data, the pattern matcher, and the object-oriented style of generic procedures) and also gives some comparisons to LISP and Prolog, the languages most widely used for AI programming.

The foreword gives a brief history of POP-11, the main philosophy of the language (the bill of rights for data objects), and a brief survey of POP-11’s current implementations. Chapter 1 introduces the language itself, presenting the basic data types and simple procedures. The second through eighth chapters cover such topics as list operations, the pattern matcher, looping and control constructs, and multiple value returns. Chapter 6 presents a good collection of exercises, which range in complexity from a few lines to a few hundred lines of POP-11 codes. Subsequent chapters cover advanced programming features and I/O handling and probe deeply into the lower level operations (on data classes, keys, etc.).

Exercises are provided at the end of the first seven chapters. Solutions to most of them are given at the end of the book; hints are also given for some of them. The book also includes a list of institutions that can supply more information or licensing details about POP-11 and some references to other books on the language.

The style of presentation is informal, especially in the early chapters. Partly for this reason, the author’s meaning is not always clear. The text contains a few typographic errors, as do some of the examples: in the middle of page 47, “endunless a” should read “elseunless a”; at the beginning of page 123, “varsxxkxkk” should read “vars x xk xkk”; and “empties()>” at the top of page 91 should read “empties()=>.” Some I/O primitives which are often required should have been discussed earlier in the book; a beginner who reads only the first chapters will be left with very limited I/O facilities. The book does not cover topics such as global variables, section definitions, local procedures, premature exit from a loop, and database operations. Vectors, a powerful data structure, are inadequately covered, and recursion, though an often-used, simple, and elegant tool, is discussed only at the end of the book, under “fancy” procedures.

In summary, the book seems quite good and will suit both the beginner and the advanced programmer. The presentation is not rigorous enough for the book to serve as a strict reference guide, but it is well suited to those who want to learn the language (see Barret et al. [2] for more complete coverage). The book could be used as an introductory POP-11 text, but the lack of exercises after chapter 7 and the inadequate coverage of advanced features count against its use for an advanced course.

Reviewer:  M Sasikumar Review #: CR112582
1) Burstall, R. M.; Collins, J. S.; and Popplestone, R. J.Programming in POP-2. Edinburgh University Press, Edinburgh, Scotland, 1971.
2) Barret, R.; Ramsay, A.; and Sloman, A.POP-11: a practical language for artificial intelligence. Ellis Horwood Ltd., New York, 1985.
Bookmark and Share
  Featured Reviewer  
 
Pop-11 (I.2.5 ... )
 
 
Program And Recursion Schemes (F.3.3 ... )
 
 
Design Tools and Techniques (D.2.2 )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Pop-11": Date
POP-11 programming for artificial intelligence
Burton M., Shadbolt N. (ed), Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1987. Type: Book (9789780201180497)
Mar 1 1988

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