ACM Home Page
Please provide us with feedback. Feedback
Abstraction mechanisms in the BETA programming language
Full text PdfPdf (1.04 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Austin, Texas
Pages: 285 - 298  
Year of Publication: 1983
ISBN:0-89791-090-7
Authors
Bent Bruun Kristensen  Aalborg University Center, Aalborg, Denmark
Ole Lehrmann Madsen  Aarhus University, Aarhus, Denmark
Birger Møller-Pedersen  Norwegian Computing Center, Oslo, Norway
Kristen Nygaard  Norwegian Computing Center, Oslo, Norway
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 35,   Citation Count: 11
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/567067.567094
What is a DOI?

ABSTRACT

The BETA programming language is developed as part of the BETA project. The purpose of this project is to develop concepts, constructs and tools in the field of programming and programming languages. BETA has been developed from 1975 on and the various stages of the language are documented in [BETA a].

The application area of BETA is programming of embedded as well as distributed computing systems. For this reason a major goal has been to develop constructs that may be efficiently implemented. Furthermore the BETA language is intended to have a few number of basic but general constructs. It is then necessary that the abstraction mechanisms are powerful in order to define more specialized constructs.

BETA is an object oriented language like SIMULA 67 ([SIMULA]) and SMALLTALK ([SMALLTALK]). By this is meant that a construct like the SIMULA class/subclass mechanism is fundamental in BETA. In contrast to SMALLTALK, BETA is a language in the ALGOL 60 ([ALGOL]) family.

SIMULA 67 is a system description and a programming language. The DELTA language ([DELTA]) is a system description language only, allowing description of full concurrency, continuous change and component interaction, developed from a SIMULA conceptual platform. BETA started from the system concepts of DELTA, but is a programming language, drawing upon a large number of contributions to programming research in the 1970s. A basic idea in BETA is to build the language upon one, general abstraction mechanism --- the pattern ([BETA a 77]) --- covering both data, procedural and control abstractions, substituting constructs like class, procedure, function and type.

Correspondingly objects, procedure activation records and variables are all regarded as special cases of the basic building block of program executions: the entity. A pattern thus describes a category of entities with identical structure. An entity consists of a set of attributes and an action-part. An attribute may be a data-item or a pattern. The action-part is a sequence of imperatives that may be executed.

A data-item may be an entity or a reference to an entity. A pattern may be used in a procedure like manner in the sense that an entity (procedure activation record) described by the pattern may be generated and executed as a part of the action sequence of another entity. A pattern may be used to generate entities that execute their action-part in concurrency with other entities. Such entities may also execute their actions interleaved in a coroutine like manner.

Entities may be organized hierarcically by means of a generalization of the SIMULA subclass mechanism. This gives possibilities for grouping common properties of entities of different patterns.

In SIMULA 67 a class may have virtual attributes (procedures, labels, and switches). This is a powerful parameter mechanism that gives the possibility to delay the specification of an attribute to a subclass specification. However, SIMULA 67 lacks the possibility to have virtual class attributes. Furthermore it is necessary to have a runtime check on the parameters of virtual procedures, since it is not possible to specify the parameter list of a virtual procedure. The virtual patterns of BETA is a generalization of the virtual concept in SIMULA 67.

In this paper the sequential part of BETA will be presented. The main purpose is to demonstrate the use of the pattern/subpattern mechanism with virtual patterns as a powerful abstraction mechanism. In addition, a further generalization of the virtual concept based on syntactic categories will be described.

Work has been initiated to design and implement an integrated programming system for BETA. The approach to separate compilation of BETA modules is described in [BETA c].

This paper is organised as follows: Section 2 describes entities, patterns and imperatives. Section 3 describes the subpattern mechanism. Virtual patterns are described in section 4. Section 5 describes the generalization of the virtual concept. In section 6 the remaining elements of BETA not mentioned in the previous sections are described. Finally the syntax of BETA is given in the appendix. Each section with a brief introduction of the relevant language elements whereafter a number of examples are given. Most of the examples are extended versions of Hoare's SmallIntSet [Hoare 72].

There is a distinction between the base language (called basic BETA) and standard BETA. Standard BETA is basic BETA extended with a number of commonly used constructs. These additional constructs may all be regarded as patterns in basic BETA, but will often be given a special syntax. This paper will mainly focus on basic BETA. Occasionally we shall use parts of a standard BETA, but this will be stated at the appropiate place.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
{ADA} ADA Reference Manual. Proposed Standard Document, United States Department of Defense, July 1980.
 
2
{ALGOL} P. Naur (ed.): Revised Report on The Algoritmic Language ALGOL 60 , Regnecentralen. Copenhagen, 1962.
 
3
{ BETA a} B. B. Kristensen, O. L. Madsen, B, Møller-Pedersen. K. Nygaard: BETA Project Working Notes 1-8 . Norwegian Computing Center, Oslo, Computer Science Department, Aarhus University, Aarhus, 1976-1982.
 
4
{BETA b} B. B. Kristensen, O. L. Madsen, B. Møller-Pedersen, K. Nygaard: A Survey of the BETA Programming Language. Norweigan Computing Center, Oslo, 1981.
 
5
{BETA c} B. B Kristensen, O. L Madsen, B. Møller-Pedersen, K. Nygaard: Syntax Directed Program Modularization. In: Interactive Computing Systems (ed. P. Degano. E. Sandewal), Nort-Holland, 1982.
6
 
7
{DELTA a} E. Holbaek Hansen, P. Haandlykken, K. Nygaard: System Description and the DELTA Language. Norweigan Computing Center, Oslo, 1975.
 
8
{DELTA b} P. Haandlykken. K. Nygaard: The DELTA System Description Language: Motivation, Main Concepts and Expeirence from use. In: Software Engineering Environments (ed. H. Hunke), GMD, North-Holland, 1981.
9
 
10
{Hoare a} C. A. R. Hoare: Proof of Correctness of Data Representation . Acta Informatica 4 (1972), 271-281.
11
 
12
{PASCAL } N. Wirth: The Programming Language PASCAL . Acta Informatica 1 (1971), 35-63.
 
13
 
14
{SMALLTALK} The Xerox Learning Research Group: Collection of articles on SMALLTALK-80. BYTE, August 1981.
 
15
{Tennent} R. D. Tennent: On a New Approach to Representation Independent Data Classes . Acta Informatica 8 (1977), 315-324.
 
16
{Vaucher} J. Vaucher: Prefixed Procedures: A Structuring Concept for Operations . Infor, vol. 13, no. 3, October 1975.

CITED BY  11
Collaborative Colleagues:
Bent Bruun Kristensen: colleagues
Ole Lehrmann Madsen: colleagues
Birger Møller-Pedersen: colleagues
Kristen Nygaard: colleagues