- Tech know how online


Simula-67 is an extension of the procedural programming languageALGOL 60 - comparable to Pascal - and is well suited for use in non- numerical data processing. The language was developed in Oslo, with the object-oriented mechanisms, in particular the work-sharing development of software, to be supported. It was consistently renounced the RECORD constructor (also: struct etc.); each data aggregation is modeled by class ( CLASS) and/or a field (ARRAY).

Classes are treated by the compiler and the runtime system like user-defined types. Features of base classes are fully inherited. Reimplementation of attributes is not possible. However, multiple inheritance is not possible. Simula-67 supports polymorphism only conditionally. It is possible to assign object references toobjects of different types (classes), whereby these may originate only from subclasses. However, no automatic "late binding" takes place during the method call.

In the method definition, the type of the referenced object must first be explicitly determined. Thus the condition for the easy extensibility around new classes is lost. Likewise the design mechanism of the abstract class is offered only conditionally. The agreement of VIRTUAL methods with empty body in base classes is possible (compare C++). Metaclasses and class objects are not supported.

Regarding the visibility, encapsulation and access protection mechanisms, the shielding of the object state from the outside can be removed by a class qualification.

The reference semantics for assignments of objects applies. Thereby there are only user-controlled object constructions. Generic or also parameterizable classes are not supported by Simula. The initialization and destruction of objects is realized user-controlled. There are explicit constructors for this.

Simula-67 has a concept with coroutines, in which the "quasi-parallel" execution of methods of several objects can be simulated (detach interrupts, resume resumes execution at the old position - possibly with changed environment parameters). The sizes of arrays can be set at runtime.

Englisch: Simula-67
Updated at: 11.01.2010
#Words: 301
Links: extension (EXTN), procedural programming, Pascal (Pa), numerical, data processing (DP)
Translations: DE

All rights reserved DATACOM Buchverlag GmbH © 2024