This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (June 2018) (Learn how and when to remove this message) |
Paradigms | Imperative, structured, modular, object-oriented |
---|---|
Family | Wirth Oberon |
Designed by | Jürg Gutknecht |
Developer | ETH Zurich |
First appeared | 2013; 11 years ago (2013) |
Typing discipline | Strong, hybrid (static and dynamic) |
Scope | Lexical |
Influenced by | |
Oberon, Pascal |
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 (director at Robinsons Associates), and David Lightfoot (Oxford Brookes University) working with Gutknecht (ETH, Zürich) and Dr. Eugene Zueff (Евгений Зуев) (Moscow State University).
The first book about Zonnon was published by the N. I. Lobachevsky State University of Nizhny Novgorod (a.k.a., Nizhni Novgorod State University).
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 (or on a module) 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 (or module), either at compile time or at runtime.
Compositional model
Zonnon uses a compositional inheritance model based on aggregation. Typically, an object (or module) is composed of several functional components, each of them presenting itself to clients in the form of an abstract definition. The set of definitions plus the object’s intrinsic interface (that is the set of all public elements of the object) constitutes the interface between the object and its clients.
Concurrency model
Zonnon allows adding behavior to objects (and modules). For this purpose, the notion of active object was imported from the Active Oberon language and generalized towards a unified model of hierarchic activities. Activities are encapsulated threads that come in two flavors: local activities and agent activities.
Local activities
Local activities express intrinsic object dynamics. A typical context is a block of statements representing the “launch logic” for a set of mutually independent activities, with the assumption that the end of the block acts as a barrier that cannot be passed before all activities have terminated.
Agent activities
Agent activities control the interoperability of objects in terms of formal dialogs. Each agent activity within a “callee” object serves as a template of a formal dialog between some caller and the callee. Agent activities typically implement a parser for some predefined syntax that constitutes a kind of contract between the two communication partners. Formal dialogs are a generalization of asynchronous method calls. This is reflected in the form of a syntax that is borrowed from ordinary method calls.
Notes
- Gutnecht and Zueff, p. 132.
- "Zonnon". ETH Zurich. 2010. Archived from the original on 9 August 2014. Retrieved 18 January 2021.
- "Book about Zonnon Language (in Russian)." (Archived 2012-10-30 at the Wayback Machine) N. I. Lobachevsky State University of Nizhny Novgorod. Retrieved on May 30, 2013.
References
- Gutnecht, Jürg and Eugene Zueff (Computer Systems Institute, ETH Zürich, Switzerland). "Zonnon for .NET - A Language and Compiler Experiment." (Archive, Springer link) in: Böszörményi, László and Peter Schojer (editors). Modular Programming Languages: Joint Modular Languages Conference, JMLC 2003, Klagenfurt, Austria, August 25–27, 2003, Proceedings. Springer, September 29, 2003. ISBN 3540407960, 9783540407966.
Further reading
- Independent sources
- (in Russian) Kasyanov, Viktor Nikolaevich (Виктор Николаевич Касьянов). Язык программирования Zonnon: учебное пособие ("The Zonnon Programming Language. Student's Manual."). Novosibirsk State University (НГУ), 2010. ISBN 5943568859, 9785943568855. Google Books entry, Catalog entry, listed on page 7 (Archive (Archive)
- (in Russian) Kasyanova, Elena Viktorovna (Елена Викторовна Касьянова). "ADAPTIVE METHODS AND TOOLS FOR SUPPORT OF DISTANCE EDUCATION IN PROGRAMMING." ("АДАПТИВНЫЕ МЕТОДЫ И СРЕДСТВА ПОДДЕРЖКИ ДИСТАНЦИОННОГО ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ") (Archive." ("АДАПТИВНЫЕ МЕТОДЫ И СРЕДСТВА ПОДДЕРЖКИ ДИСТАНЦИОННОГО ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ") (Archive) Siberian Division of the Russian Academy of Sciences A. P. Ershov Institute of Informatics Systems (Институт cистем информатики им. А.П. Ершова СО РАН). Edited by prof. V. N. Kasyanov. English summary (Archive (Archive)
- (in Russian) Kasyanova, E.V. "The Programming Language Zonnon for .NET Framework." ("ЯЗЫК ПРОГРАММИРОВАНИЯ Zonnon ДЛЯ ПЛАТФОРМЫ .NET" "The Zonnon Programming Language for the .NET Platform") (Archive." ("ЯЗЫК ПРОГРАММИРОВАНИЯ Zonnon ДЛЯ ПЛАТФОРМЫ .NET" "The Zonnon Programming Language for the .NET Platform") (Archive) A. P. Ershov Institute of Informatics Systems, Russian Academy of Sciences, Siberian Branch. English summary (Archive)
- (in Russian) Kasyanova, E.V. "Introductory Course of Programming Based on the Zonnon Language." (ВВОДНЫЙ КУРС ПРОГРАММИРОВАНИЯ НА БАЗЕ ЯЗЫКА Zonnon) (Archive." (ВВОДНЫЙ КУРС ПРОГРАММИРОВАНИЯ НА БАЗЕ ЯЗЫКА Zonnon) (Archive) A. P. Ershov Institute of Informatics Systems. English summary (Archive)
- (in Russian) "От Паскаля к языку Zonnon: реализация новых идей на платформе .NET." ("From Pascal to Zonnon: Implementation of New Ideas on the .NET Platform") (Archive." ("From Pascal to Zonnon: Implementation of New Ideas on the .NET Platform") (Archive) PC World (Мир ПК). 2003, No. 9. Available at Otkrytye Sistemy (Открытые системы, "Open Systems"). Alternate link, Archive, Archive
- Sources from author and/or contributors
- Gutknecht, Jürg, Vladimir Romanov, and Eugene Zueff. "The Zonnon Project: A .NET Language and Compiler Experiment." (Archive." (Archive) ".NET Technologies 2005 conference proceedings." Copyright UNION Agency – Science Press, Plzeň, Czech Republic. ISBN 80-86943-01-1.
- Zouev, Eugene. "Project Zonnon: The Language, The Compiler, The Environment." (Archive." (Archive) Bergen Language Design Laboratory. Bergen University. 19 May 2010.
- Gutknecht, Jürg and Roman R. Mitin. "Project Zonnon: A Compositional Language for Distributed Computing." IEEE Computer Society Xplore. Composition-Based Software Systems, 2008. ICCBSS 2008. Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008). Madrid, Spain. 25–29 February 2008. p. 148 - 153. Print ISBN 978-0-7695-3091-8. DOI 10.1109/ICCBSS.2008.10. INSPEC Accession Number 9905083.
- Gutknecht, Jürg and Eugene Zueff (Editors: Brian Kirk and David Lightfoot). "Zonnon Language Report." (Archive." (Archive) Swiss Federal Institute of Technology Zurich. December 2005.
- Gutknecht, Jürg, Roman Mitin, Nikolai Zolotykh, and Nina Gonova. "Implementing Mathematical Data Types on Top of .NET." (Archive." (Archive)
- Gutknecht, Jürg and Eugene Zueff. "Zonnon Language Experiment, or How to Implement a Non-Conventional Object Model for .NET." (Archive." (Archive)
- Kirk, Brian, David Lightfoot, and Jürg Gutknecht. "The Concepts of Zonnon A language for systems engineering with Modules, Objects and Concurrency." (Archive." (Archive)
- (in Russian) Mitin, R. O. (Р.О. Митин) "ЯЗЫК ПРОГРАММИРОВАНИЯ Zonnon (ОСНОВЫ)." ("The Zonnon Programming Language (Overview). Student's Manual") (Archive." ("The Zonnon Programming Language (Overview). Student's Manual") (Archive) N. I. Lobachevsky State University, 2004.
- (in Russian) Zueff, Eugene A. Russian-language PowerPoint slides from the: Zonnon Compiler: Architecture, Integration, Technology. Microsoft Conference, June 15–17, 2003, Moscow. (Archive from the: Zonnon Compiler: Architecture, Integration, Technology. Microsoft Conference, 15–17 June 2003, Moscow. (Archive)
External links
- Official website
- (in Russian) "Введение в методы программирования на основе технологий Microsoft .NET." N. I. Lobachevsky State University of Nizhny Novgorod.
Modula, Oberon | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Modula |
| ||||||||||||||||
Oberon |
| ||||||||||||||||
Common Language Infrastructure | |||||||
---|---|---|---|---|---|---|---|
Architecture | |||||||
Components | |||||||
Implementations |
| ||||||
Languages |
|