Zonnon

Zonnon

infobox programming language
name = Zonnon

paradigm =
year =
designer =
developer =
latest_release_version =
latest_release_date =
latest_test_version =
latest_test_date =
typing =
implementations =
dialects =
influenced_by =
influenced =
operating_system =
license =
website =

Zonnon is a general purpose programming language in the Pascal, Modula-2 and Oberon family. 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 Prof. Jürg Gutknecht. Zonnon introduces the concept of 'active objects' which are used to represent real world concurrent objects within computer programs.

The [http://www.zonnon.ethz.ch/language/report.html Zonnon Language Report] was written by Brian Kirk (director at Robinsons Associates), and David Lightfoot (Oxford Brookes University) working with Prof. Jürg Gutknecht (ETH, Zürich) and Dr. Eugene Zueff (Moscow 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 Pascal, Modula-2 and Oberon programmers. Most Pascal programs from the domain of algorithms and data structures are successfully compiled by the Zonnon compiler after just a few minor modifications.However, from the perspective of “programming-in-the-large”, Zonnon is much more elaborate compared to its predecessors. There are four different kinds of program units in Zonnon: 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 whose 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 a number of 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.

External links

* [http://www.zonnon.ethz.ch/ Homepage]
* [http://www.zonnon.ethz.ch/language/report.html Language report]
* [http://www.zonnon.ethz.ch/compiler/download.html ETH Zonnon compiler]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Zonnon — Paradigmen: imperativ, strukturiert, objektorientiert, modular Erscheinungsjahr: 2002 Entwickler: Jürg Gutknecht Einflüsse …   Deutsch Wikipedia

  • Zonnon — Для улучшения этой статьи желательно?: Проставить шаблон карточку, который существует для предмета статьи. Пример использования шаблона есть в статьях на похожую тематику …   Википедия

  • Oberon programming language — Infobox programming language name = Oberon paradigm = imperative, structured, modular year = 1986 designer = Niklaus Wirth | typing = strong, static dialects = implementations = influenced by = Modula 2 influenced = Oberon 2, ZonnonOberon is a… …   Wikipedia

  • Liste von Hallo-Welt-Programmen/Programmiersprachen — Dies ist eine Liste von Hallo Welt Programmen für gebräuchliche Programmiersprachen. Weitere Beispiele für grafische Benutzeroberflächen, Web Technologien, exotische Programmiersprachen und Textauszeichnungssprachen sind unter Liste von Hallo… …   Deutsch Wikipedia

  • Список языков программирования по категориям — Списки языков программирования По категориям Хронологический Генеалогический Приведён список языков программирования, сгруппированных по категориям. Некоторые языки попали в несколько категорий. Содержание …   Википедия

  • Oberon (programming language) — Oberon Paradigm(s) imperative, structured, modular Appeared in 1986 Designed by Niklaus Wirth Typing discipline strong, static …   Wikipedia

  • Active Oberon — Класс языка: императивный, структурированный, модульный Появился в: 2000 Автор(ы): Patrik Reali, B. Meyer, Brinch Hansen, Pieter Muller, Jurg Gutknecht (Юрг Гуткн …   Википедия

  • Active Oberon — Paradigmen: imperativ, strukturiert, objektorientiert Entwickler: Niklaus Wirth, Jürg Gutknecht Einflüsse: Oberon Beeinflusste …   Deutsch Wikipedia

  • Jürg Gutknecht — (* 3. Januar 1949 in Bülach) ist ein Schweizer Informatiker. Er entwickelte zusammen mit Niklaus Wirth die Programmiersprache Oberon und das gleichnamige Betriebssystem und erweiterte die Oberon Modula Pascal Sprachfamilie um Active Oberon und… …   Deutsch Wikipedia

  • Liste der .NET-Sprachen — Die folgende Aufstellung enthält eine Liste von Programmiersprachen für Microsoft .NET, Mono, DotGNU oder einer kompatiblen Laufzeitumgebung. Sprache Implementierung Hersteller Ada 2005 A# (Ada for .NET) APL Dyalog.NET ASP ASP.NET: ASM to IL …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”