is a pure object-oriented
language from the Scandinavian School in System Development where the first object-oriented language Simula
From a technical perspective, BETA provides the following unique feature:
- Classes and Procedures are unified to one concept, a Pattern.
- Classes are defined as properties/attributes of objects. This means that a class cannot be instantiated without an explicit object context.
- A consequence of the above is that BETA supports nested classes; and BETA's nested classes are indeed one of the primary sources of inspiration for Java's so-called inner classes.
- Classes can be virtually defined (much like virtual methods can in most other object-oriented programming languages).
- Virtual entities (such as methods and classes) are never overwritten; instead they are refined or specialized.
BETA supports the object-oriented perspective on programming and contains comprehensive facilities for procedural and functional programming. BETA has powerful abstraction mechanisms for supporting identification of objects, classification and composition. BETA is a strongly typed language like Simula
, with most of the type checking being carried out at compile-time. It is well known that it is not possible to obtain complete type checking at compile-time without sacrificing the expressiveness of the language. BETA has an optimum balance between compile-time type checking and run-time type checking.