2 Lecture Series 1:
The BETA Programming Language

The purpose of this Lecture Series is to learn the BETA language. The lectures will present all aspects of the language with special emphasis on the language constructs supporting object-oriented programming.

2.1 Topics

2.2 Lectures

2.2.1 Introduction to Object-Oriented Programming

Readings: [MMN 93, chap. 1, 2], [Knudsen 94, chap. 6]

Notes: It is important to identify object-oriented not just as yet another set of features of programming languages. It is also important to stress that object-oriented programming is not the solution to all software problems. Object-oriented programming is a very important supplement to the other perspectives on programming.

2.2.2 Objects, Repetitions, and Patterns

Readings: [MMN 93, chap. 3, 4]

Notes: Emphasis should be placed on the concept of singular objects, references (static and dynamic), self reference, repetitions and patterns as the general abstraction mechanism. Emphasis must also be placed on the different construction modes for objects (inserted, static and dynamic).

2.2.3 Imperatives

Readings: [MMN 93, chap. 5]

Notes: Special emphasis should be placed on the generality of evaluations, object kinds and construction modes, and computed references and computed remote.

At this time it is appropriate to start on covering the lectures in the third Lecture Series. At least the lecture on compiler and basic libraries. Later in this Lecture Series (when the students begin writing non-trivial programs, it will be appropriate to start on the second Lecture Series on programming-in-the-large. This Lecture Series should be covered before starting the students on one of the major assignments.

2.2.4 Subpatterns

Readings: [MMN 93, chap. 6]

Notes: Emphasis should be placed on patterns and subpatterns as the unique abstraction mechanism for classes, types, procedures, functions, etc. Specifically, emphasis must be places of specialisation of actions, enter/exit parts for subpatterns, qualifications, and the Object pattern. Please emphasise polymorphism in combination with dynamic references.

2.2.5 Virtual Procedure Patterns

Readings: [MMN 93, chap. 7]

Notes: Since specialisation of actions, and the combination with the virtual mechanism is important for the understanding of many libraries, and for the construction of elegant and efficient BETA applications, emphasis must be placed on learning these essential constructs. Remember to illustrate the consequences of combining dynamic references and virtual procedure patterns with enter/exit parts.

2.2.6 Block Structure and Part Objects

Readings: [MMN 93, chap. 8, 10]

Notes: Since block structure is one of the other corner stones of object-oriented programming in the BETA language, emphasis must be placed on learning this essential construct. Especially to students, not previously exposed to block-structured languages. Special emphasis must be placed on multi-nested blocks (patterns within patterns, etc.).

2.2.7 Virtual Class Patterns

Readings: [MMN 93, chap. 9]

Notes: Virtual class patterns are the means for constructing generic abstractions in the BETA language, and leads to many possibilities for elegant modelling.

2.2.8 Pattern Variables

Readings: [MMN 93, chap. 11]

Notes: Pattern variables allows for manipulation of patterns at run-time, giving possibilities for very flexible programming. Please emphasis that pattern variables should be used with care due to their very dynamic nature. Many modelling aspects are best handled by virtual patterns instead.

2.2.9 Procedural Programming in BETA

Readings: [MMN 93, chap. 12]

Notes: Procedural programming is still an important programming style; even after the introduction of object-oriented programming. This chapter illustrates the use of BETA language constructs in procedural programming, and how they augment the facilities for procedural programming as well as object-oriented programming.

2.2.10 Co-routine Aspects

Readings: [MMN 93, chap. 13]

Notes: Naturally, emphasis should be placed on the importance of the modelling capabilities of the action-part as describing the behaviour of components and the attribute part as describing the states of components. Emphasis should also be placed on the construction modes of objects (items vs. components).

2.2.11 Concurrency Aspects

Readings: [MMN 93, chap. 14]

Notes: Illustrates the power of the abstraction mechanisms of the BETA languages, allowing the definition of powerful synchronisation and communication mechanisms to be defined within the language itself, based on a few very basic concurrency facilities (fork and semaphores).

2.2.12 Non-deterministic Aspects

Readings: [MMN 93, chap. 15]


2.2.13 Conceptual Framework for Object-Oriented Programming

Readings: [MMN 93, chap. 18]

Notes: Here the underlying conceptual framework for object-orientation is presented. The framework offers a frame of understanding which can be applied to analysis, design and implementation, leading to an understanding of object-oriented analysis, object-oriented design and object-oriented programming. This material might be split into two lectures, or alternatively also used as some of the justifications for the BETA language constructs.

Teaching Package
© 1991-2002 Mjølner Informatics
[Modified: Friday October 20th 2000 at 13:18]