Zonnon
Zonnon is a general purpose programming language in the line or family of the preceding languages Pascal, Modula, and Oberon. Jürg Gutknecht is the author.
Its conceptual model is based on objects, definitions, implementations, and modules. Its computing model is concurrent, based on active objects which interact via syntax controlled dialogs. The language is being developed at ETH Zürich Institute for Computer Systems by Professor Jürg Gutknecht. Zonnon introduces the concept of 'active objects' which are used to represent real world concurrent objects within computer programs. The Zonnon Language Report was written by Brian Kirk, and David Lightfoot working with Gutknecht and Dr. Eugene Zueff .
The first book about Zonnon was published by the N. I. Lobachevsky State University of Nizhny Novgorod.
Overview
Zonnon is a member of the Pascal family of languages, which has two beneficial consequences: a) it is a general purpose language and b) it is immediately familiar to programmers who have used Pascal, Modula-2, and Oberon. Most Pascal programs from the domain of algorithms and data structures are successfully compiled by the Zonnon compiler after a few minor modifications. However, from the perspective of programming in the large, Zonnon is much more elaborate compared to its predecessors. Zonnon has four different kinds of program units: objects, modules, definitions, and implementations. The first two are instantiated at runtime, the third is a compile time unit of abstraction, and the fourth is a unit of composition. Here is a brief characterization:- Object is a self-contained run-time program component. It can be instantiated dynamically under program control in arbitrary multiplicity.
- Module can be considered as a singleton object which creation is controlled by the system. In addition, a module may act as a container of logically connected abstract data types, operators, and structural units of the runtime environment. In combination with the import relation, the module construct is a powerful system structuring tool.
- Definition is an abstract view on an object from a certain perspective. It is a facet of the object or, in other words, an abstract presentation of one or more of its services.
- Implementation typically provides a possibly partial default implementation of the corresponding definition. It is a unit of reuse and composition that is aggregated into the state space of an object, either at compile time or at runtime.
Compositional model