Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The BETA programming language
Kristensen B., Madsen O., Moller-Pedersen B., Nygaard K. (ed), MIT Press, Cambridge, MA, 1987. Type: Book (9780262192644)
Date Reviewed: Dec 1 1988

This chapter is the first of an interesting collection of papers on various aspects of object-oriented programming. The book is divided into four parts: languages (and language-related issues and concepts), environments for object-oriented software development, databases, and theoretical concepts. Since it is an account of a complete object-oriented language, this chapter on BETA fits neatly into the first of the book’s categories. That said, there is far more to this paper than a simple enumeration of the features of a programming language.

All object-oriented languages owe a significant debt to SIMULA 67, and the authors of this paper begin by clearly stating that BETA is a modern language in the SIMULA 67 tradition (indeed, one of the authors, Kristen Nygaard, is an originator of both languages). It would be wrong, though, to regard BETA simply as a development of SIMULA: it represents the extension and rationalization of the features of its ancestor, and is a smaller yet much more expressive language. BETA itself is no fledgling, as it has been under development since 1976 as a vehicle for the implementation of large software systems, including those for distributed and embedded environments.

The simplicity of BETA is largely attributable to a single abstraction mechanism, the pattern, which is used in place of classes, procedures, functions, and types. Instances of patterns are BETA’s objects. Because procedures and functions are unified into this single abstraction, BETA goes a long way toward supporting the functional programming style.

The paper is divided into two parts, the first of which concentrates on the basic constructs of the language (surprisingly few are needed) and sequential execution. It shows how patterns are defined and used, and how pattern hierarchies and virtual patterns are created. In the second part, the authors explain how concurrent execution and alternation, a generalization of SIMULA’s coroutine sequencing, fit into the same conceptual framework. The synchronization of concurrent objects has certain features in common with Hoare’s CSP and the Ada rendezvous, but there are important differences. It is interesting to compare BETA with CSP, Ada, and Occam.

It is not possible to do this paper justice in such a short review. If you are interested in object-oriented programming, concurrency, or language design in general, and you have not come across BETA elsewhere, this chapter is well worth reading. Despite a few minor blemishes, the text is well written, and there are many examples of BETA code. With its strong typing and block structure, BETA provides an interesting contrast to Smalltalk. (The use of block structure in object-oriented languages is the subject of a companion chapter by Ole Madsen.)

Considering the expressibility and flexibility of the language, it is pleasing to find that BETA has been kept small and efficient. The language is still evolving, but no new features are added unless they fit conceptually. Even without further development, BETA is an interesting and powerful tool for system programming and for investigating programming methodology.

Reviewer:  Paul A. Luker Review #: CR112521
Bookmark and Share
 
BETA (D.3.2 ... )
 
 
Simula (D.3.2 ... )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no

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