One of the characteristics of BETA is the unification of abstraction mechanisms such as class, procedure, process type, generic class, interface, etc. into one abstraction mechanism: the pattern. In addition to keeping the language small, the unification has given a systematic treatment of all abstraction mechanisms and lead to a number of new possibilities. Patterns and their instances are intended for modeling concepts and phenomena in the application domain and provide the logical structure of a given system. Modularization is viewed as a means for describing the physical structure of a program. Modules are units of program text that may be edited, stored in libraries, exist in different variants, be separately compiled, etc. Modularization is provided by a language-independent mechanism based on the context-free grammar of the language. In principle, any correct sequence of terminal and nonterminal symbols of the grammar can be a module.
Modular Programming Languages: Joint Modular Languages Conference, Jmlc 2000, Zurich, Switzerland, September 6-8, 2000. Proceedings, 2000, p. 211-237