| M. Reiser and N. Wirth, Programming in Oberon: steps beyond Pascal and Modula, ACM Press, New York, 1992. 17 |
....names. Dynamic linking [4] is a scheme, where execution starts with a single compiled module definition and further module definitions are loaded and installed only once they are needed. The same module definition can be used by many different applications. Modula 2 [16] Modula 3 [10] Oberon [13], Objective Caml [8] and Java [2] are examples of languages that support modules and separate compilation. Oberon and Java also support dynamic linking. A module definition specifies a function that takes modules as arguments and returns a module. This observation relates module definitions to ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley, New York, 1992.
....by multihop routing) Note that inlining increases code size slightly for only two components TimerM and AbsoluteTimerM but reduces or eliminates many others, leading to an overall reduction in footprint. 5. RELATED WORK The module systems of languages such as Modula 2 (plus descendants) [12, 52, 53] and Ada [20] explicitly import and export interfaces. However these systems are less flexible than nesC, as there is no explicit binding of interfaces: an exported interface I is automatically linked to all importers of I . Standard ML s module system offers similar functionality to nesC, except ....
N. Wirth and M. Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, 1992. ISBN 0-201-56543-9.
.... Oberon Language Report Patrik Reali Institut fur Computersysteme, ETH Zurich reali inf.ethz.ch March 14, 2002 1 Introduction Active Oberon is an extension of the original Oberon language [28, 29]. Its purpose is to introduce features into the language to express concurrency by means of active objects. This report assumes that you already know Oberon; only the extensions to it are described here. The design of the language extension has been driven by the search for unification and ....
N. Wirth and M. Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, first edition, 1992.
....a common shared data structure; section 5 discusses a new problem introduced in the compiler by the parallelism: deadlock; section 7 then draws the conclusions of this work. 2 Active Objects in Oberon This section recapitulates the Active Oberon language [7] an extension of the Oberon language [16, 18]; it is a homogeneous integrated concurrent programming language that embeds concurrency support in Oberon, by making just minimal additions to the language and creating a unified framework for concurrent, object oriented programming. This is done by introducing concurrent activities, protected ....
N. Wirth and M. Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, first edition, 1992.
....the old object s class type. 4. 4 The with Statement In order to conveniently express cascaded method calls to the same variable in the presence of implementationonly classes, GILGUL introduces a with statement that is reminiscent of the similar statement in the programming language Oberon [16]. In GILGUL, it can be used as follows: with (obj instanceof D) Its effect is that obj is regarded as an instance of the respective class for the scope of the following (block) statement. The type given in the with condition can be any interface or class type, including the type of an ....
M. Reiser and N. Wirth. Programming in Oberon -- Steps Beyond Pascal and Modula. Addison-Wesley, 1992.
....is active, it is possible to generate a profile just for those routines and their descendants. 5 Implementation We have made two implementations of the profiling scheme we have described. The first was part of a bytecode based implementation of Niklaus Wirth s programming language Oberon 2 [10, 12, 14]. It is easy to add a counter to the bytecode interpreter that is incremented for each instruction executed, thus providing a cycle counter in firmware. More recently, Andreas Sorensen and the author have made an implementation that can be used as a drop in replacement for gprof under Linux. It ....
M. Reiser and N. Wirth, Programming in Oberon: steps beyond Pascal and Modula, ACM Press, New York, 1992.
....the decisions must be made between alternatives. By constructing and iterating a PredictVisitor and then supplying this for use in a ParseVisitor, we achieve an effect similar to memoising in functional languages. To test the system, we prepared a grammar for the programming language Oberon 2 [16], which was chosen as it represented a non trivial real world programming language, without the inherent contextsensitivity or ambiguities of languages such as C or C . Apart from left recursion elimination, which is essential to all left to right top down parsers, very little grammar ....
....such as C or C . Apart from left recursion elimination, which is essential to all left to right top down parsers, very little grammar manipulation was needed, since our system allows for the use of all the usual EBNF constructs. As test cases we used the sample code available from four texts, [11, 14, 15, 16], comprising some 23,000 lines of Oberon 2 code in total. The testing phase threw up relatively few errors in the parsing code. Since the system had been tested and debugged for the easier GFA problems of PRODUCTIVE and REACHABLE , most of the issues relating to the implementation of the Visitor ....
N. Wirth and M. Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, 1992. 8
....not consist of fractional differential equations only, but that first order differential equations are contained too. This has imposed the requirement to find coherent schemes for both types of differential equations. The subroutine package has been implemented in the programming language Oberon [8, 22] in an object oriented manner. The structure of this paper is as follows. We begin by introducing the mathematical model of viscoplasticity that we want to analyze. In particular, we state the fractional differential equations that we want to solve. Together with some necessary mathematical ....
Wirth N., Reiser M. (1992) Programming in Oberon --- Steps Beyond Pascal and Modula2. Addison-Wesley, Reading 71
.... we started with a carefully elaborated and complete specification of an object oriented language 1 that 1 Most people do not consider Oberon being object oriented due to is used at least in academy for the implementation of compilers, operating systems [33] various applications, and teaching [24]. Some peculiarities in the design of the language Oberon affected considerably the original Montages formulation. In particular, each semantic concept in the language is represented by a meaningful keyword in the concrete syntax. Therefore, we used the tokens representing these keywords in the ....
Niklaus Wirth Martin Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, 1992.
....the concept of stand alone messages. We will again use a series of examples based on the abstract data type Stack,thistime expressed in the experimental programming language Lagoona [12] Lagoona is an imperative, modular, and object oriented 3 programming language loosely based on Oberon [25]. The basic compilation unit is the module as opposed to the class or interface in conventional object oriented languages. Modules contain declarations of constants, variables, messages, types, procedures, and methods. MODULE Framework1; MESSAGE ( Add object to stack as topmost object. ....
Martin Reiser and Niklaus Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley, 1992.
....we prefer the term implementation polymorphism in this context. Independent extensibility requires some form of encapsulation that isolates components from their environment except for explicitly declared dependencies. Sealed encapsulation constructs [2] in modular languages such as Oberon [12] are one way to achieve this.Therefore, combining concepts from modular and object oriented languages should be a viable approach to the design of component oriented programming languages [16] However, simply embedding object oriented concepts into a modular language unchanged is insufficient. ....
.... qualified in external modules: edu.uci.framework.Stack stack = null; stack = new edu.uci.components.ArrayedStack(16) stack.edu.uci.framework.push(new Integer(1) To avoid excessive qualifications, we introduce an aliasing construct for import declarations as found in Oberon [12]: module com.factorial.cool.extension import f1 = edu.uci.framework; public class CoolStack implements f1.Stack . public void f1.push (Object o) public void f1.pop ( public Object f1.top ( public boolean f1.empty ( To adapt this class ....
[Article contains additional citation context not shown here]
Martin Reiser and Niklaus Wirth. Programming in Oberon: Steps Beyond Pascal and Modula. Addison-Wesley (ACM Press), Wokingham, England, 1992.
....with the requirements of real time systems and shows how Lagoona s flexible message send semantics could be exploited to schedule non essential computations. 2 The Programming Language Lagoona Lagoona is an imperative, modular, and object oriented programming language loosely based on Oberon [13]. Note that we use the term object oriented somewhat reluctantly because the better term component oriented is not yet widely accepted. As will become clear below, Lagoona differs fundamentally from common object oriented languages, for example in the treatment of messages and the absence of ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley, 1992.
....consequently one cannot annotate variables with them. However, even if we accept these sets of objects as classes, this solution makes constrained classes less useful because there is no way to access their local features. A dynamic type check facility can help here: Type guards like in Oberon [24] can help to simulate local variables of constrained classes, because they provide a dynamic type test. A type guard controls a block by narrowing the type of a variable in that block: if the object bound to the variable does not conform to the type, the block is skipped. So, if the block is ....
Niklaus Wirth and Martin Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, rst edition, 1992. source code from the book is available at: ftp://ftp.inf.ethz.ch/pub/software/Oberon/Books/PinOberon/.
....consequently one cannot annotate variables with them. However, even if we accept these sets of objects as classes, this solution makes constrained classes less useful because there is no way to access their local features. A dynamic type check facility can help here: Type guards like in Oberon [WR92] can help to simulate local variables of constrained classes, because they provide a dynamic type test. A type guard controls a block by narrowing the type of a variable in that block: if the object bound to the variable does not conform to the type, the block is skipped. So, if the block is ....
Niklaus Wirth and Martin Reiser. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, rst edition, 1992. source code from the book is available at: ftp://ftp.inf.ethz.ch/pub/software/Oberon/Books/PinOberon/.
....0 . A variable of an extended type can always be assigned to a variable of the corresponding base type. A variable of a base type can only be assigned to a variable of an extended type if it can be shown that all fields in the extended type will be unambiguously specified after the assignment ([21], p. 193) This implies that the dynamic type of the variable of the base type must be an extension of the static type of the variable of the extended type. From the previous example, the assignment x : v is only legal if the dynamic type of v is an extension of P 0 . CHAPTER 2. BACKGROUND 19 ....
Martin Reiser and Niklaus Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley Publishing Company, 1992.
....particular implementation platform in that, unlike most object oriented data models, it is independent of a particular type model and hence of a particular programming language environment. The generic model has been instantiated in number of environments including ones based on C , Java, Oberon [RW92] and Prolog. 1.2 OM Framework for Database Development OM is a generic object data model with influences from extended entity relationship models and semantic data models, as well as from object oriented paradigms. There were two main driving forces in the development of the model. First, we ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison Wesley, 1992.
....tree. The formulation of Montages [KP97a] was strongly influenced by some case studies where the Oberon language [KH95,KP97b] has been specified. Oberon is an object oriented language that is used for the implementation of compilers, operating systems [WG92] various applications, and teaching [RW92]. Montages have been used also in other case studies, such as the specification of the 1 Historically the C case study was preceded and paralleled by work on Pascal [Gur88] Modula2, Prolog, and Occam, see [BH98] for a commented bibliography on ASM case studies. Java [Wal97] language, the ....
M. Reiser and N. Wirth. Programming in Oberon - Steps Beyond Pascal and Modula. Addison-Wesley, 1992.
....of practical importance. In this report we describe a project, Concurrent Oberon, which introduces concurrency into the Oberon system while maintaining the simplicity and spirit of the original system. 1 Introduction Oberon is the name of both a programming language designed by Niklaus Wirth [RW92], and an operating system [WG92] for the Ceres workstation [Ebe87] designed by Wirth and J urg Gutknecht. 2 Both the language, which supports object oriented programming, and the system are notable for the elegance of their designs and significant functionality with a very small use of ....
....oberon: Thread; The variable oberon indicates the Oberon thread, and variable cur indicates the thread that is currently executing, and is updated by the scheduler each time control is transferred. Parameters can be passed to a thread by using the type extension facility of the Oberon language [RW92]. New descriptor types can be defined by augmenting the base thread descriptor with new fields, and instances thereof may be used to invoke the Create operation. Thread procedures can access the additional fields of the descriptor of the currently executing thread using type guards on the variable ....
Martin Reiser and Niklaus Wirth. Programming in Oberon: Steps Beyond Pascal and Modula. ACM Press, Addison-Wesley, 1992.
....static and dynamic semantics are given in a denotational style. 1 Introduction In languages such as Pascal and Modula 2, program variables are declared to be of a certain type and may then be assigned only values that belong strictly to that type. In the latest of this family of languages, Oberon [RW92, Wir88b] and Oberon 2 [MW91] this restriction has been relaxed for record and pointer types to achieve inheritance. The same approach to the development of an objectoriented Ada9X is suggested in [Sei91] Type extension [Wir88a] is the creation of new record types from existing record types by the ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley, 1992.
....and challenging, I will not pursue the creation or use of such a language. I consider the following interesting research languages: Beta [106, 113] CLOS [14, 60, 101, 102, 131] and [155, Chapter 28] Dylan [9] ML [38, 124, 134] the Pascal Modula family [127, 128, 175, 176, 173] Oberon [141, 177], Obliq [23, 24] Self [2, 167, 168] Simula [12, 45] and Squeak [91] The following are the out of mainstream production languages I believe are worthwhile: Eiffel [121, 122] Objective C [43, 44] the best short introduction can be found in [108] the best book on the language is [136] ....
M. Reiser and Niklaus Wirth. Programming in Oberon: Steps Beyond Pascal and Modula. Addison-Wesley Publishing Company, 1992.
....been proposed. A common approach is to put part of the additional complexity into the object system, i.e. to hide it from the developer, by extending the notion of objects and classes. The purpose of the work described in this paper is to add support for distributed objects to the Oberon system [Rei92]. In particular, distributed objects should support the implementation of distributed models (in the sense of the MVC paradigm [KrP88] i.e. they should support the adaptation of existing Oberon applications (ease the transition of existing MVC applications) to a distributed environment. To ease ....
Reiser M., Wirth N.: Programming in Oberon - Steps beyond Pascal and Modula-2. Addison-Wesley 1992
....in practical cases, especially in the presence of abstraction between modules. Module compatibility is not considered in [21] Among the object oriented successors of Modula 2 (cf. 25] Modula 3 (cf. 8] 13] places the emphasis on concurrent programming with threads, while Oberon (cf. 12] [16]) focuses on the integration of structured, modular, and object oriented programming. Modules are considered a structuring medium, an abstraction medium, and compilation units. Inheritance means type extension. Although no specification constructs are provided in either language, we can think of ....
Martin Reiser, Niklaus Wirth. Programming in Oberon - Steps Beyond Pascal and Modula. Addison Wesley, 1992.
....reliable interprocess communication, thus facilitating the transparent exchange of information between processes, regardless of their physical location. Hybrid machines are also able to communicate with other machines using the TCP IP protocol suite. 4. 2 Software platform The Oberon language [10] was designed to serve as an implementation tool for the Oberon system [13] an efficient, concise operating system founded on object oriented programming. The Oberon language is a modest extension, and a strongly streamlined descendant of Modula 2. The Oberon language is defined in terms of few, ....
M. Reiser and N. Wirth. Programming in Oberon: Steps Beyond Pascal and Modula. Addison-Wesley Publishing Company, ACM Press, New York, 1992.
....shared by all instantiations polymorphic libraries can be separately compiled e.g. for DLLs incurs no run time overhead, and can eliminate some type tests The rest of this paper is organised as follows. Section 2 briefly describes Oberon and its subtyping, for further information see e.g. [10, 12]. Section 3 describes the extension to Oberon. The implementation of parametric polymorphism is described in Section 4. The final sections describe further work, related work and conclusions. 2 Motivation: Inclusion Polymorphism and Oberon In Oberon we may define a list of heterogeneous objects ....
M Reiser and N Wirth. Programming in Oberon -- Steps beyond Pascal and Modula. Addison-Wesley, 1992.
.... There, classes are the unit of description, and an object is defined by the classes it belongs to; an example for a class based language is Eiffel (Meyer, 1993) Mixed approaches are Smalltalk (Goldberg and Robson, 1983) that is object based but has class objects providing the methods, and Oberon (Reiser and Wirth, 1992), that is class based but binds implementations to objects. In class based languages, a method call to an object is performed by looking up its class membership and executing the implementation that the class associates with that method. This assumes that there is only one class that the method ....
M. Reiser, N. Wirth. Programming in OBERON --- steps beyond Pascal and Modula. acm press. Addison-Wesley, New York. 1992.
....are 2 How to make syntax diagrams 1. clearness, 2. compactness, 3. completeness and 4. efficiency in production. At this time nearly all authors use the so called Backus Naur Form BNF, which original was invented to design and not to document or teach languages. For an example look at [1]. This form of documentation satisfies points 2 4. In particular, criterion 4 is given, perhaps the BNF can be taken directly or with slight modifications from parser specifications such as YACC. But clearness, especially for beginners, is not given. Because language documentation must be useful ....
Martin Reiser and Niklaus Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley, Wokingham, 1992.
....encapsulated data and operations upon it which define a well specified interface. These operations perform logically atomic updates to the abstraction s state; and each operation must maintain the consistency of that state. Support for such abstractions in sequential languages is well understood [30, 34], but the situation is more complex for concurrent languages [1, 43, 17, 2, 4, 9, 24, 22] Concurrency allows only a partial order on state updates, complicating the notion of consistency. Any concurrent model must preserve the notion of logically atomic operations upon an abstraction in a ....
N. Wirth and M. Reiser. Programming in Oberon -- Steps beyond Pascal and Modula. Addison Wesley, 1992.
....implementations which are also close to Modula 2. This paper combines the earlier work on pointers with a recently rediscovered ( BDMN73] language feature, type extension [Wir88a] A generic implementation for an abstract data type module is calculated. The genericity is in the sense of [RW92], where an imported module and type extension are used to instantiate a specific application. The advantage of the resulting code is that the complexity of maintaining the linked data structure is separated from any concern over the actual contents in its nodes. In the derived program, the target ....
....This context allows the use of type extension to derive a generic implementation for the given example, in Section 5. 2 Type Extension Type extension [Wir88b] is the creation of new record types from existing record types by the addition of extra fields. In the object oriented languages Oberon [RW92, Wir88a] and Oberon 2 [MW91] type extension and a relaxation of the usual assignment compatibility rules provide the mechanism by which single inheritance is facilitated. This approach as suggested in [Sei91] has also been adopted for Ada 95 [Bar95] A record extension is considered to be compatible ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison-Wesley, 1992.
....which define a well specified interface. The abstraction model utilizes a set of accessor methods that perform logically atomic operations upon the abstraction s state; each operation must maintain the consistency of that state. Support for abstractions in sequential languages is well understood [33, 38, 37], but the situation for concurrent languages is more complex [1, 47, 14, 20, 2, 5, 11, 28, 27] Concurrency allows only a partial order on state updates, complicating the notion of consistency. Any concurrent model must preserve the notion of logically atomic operations upon an abstraction in a ....
N. Wirth and M. Reiser. Programming in Oberon -- Steps beyond Pascal and Modula. Addison Wesley, 1992.
....(with costs visible to programmers) Support for building communication abstractions Safety both in terms of memory and communications invariants It is the combination of these points which distinguishes our work from that of others. Mianjin is based on the Oberon programming language [6]: the latest in the Pascal family. Oberon may be characterised as being: small, efficient and safe; it also supports object oriented programming. Mianjin, and the whole Gardens project, has been designed with a minimalist philosophy, inspired by the Oberon programming language and system [9] Thus ....
M Reiser and N Wirth. Programming in Oberon -- Steps beyond Pascal and Modula. Addison-Wesley, 1992.
....software components including safety critical ones get produced using languages that either provide dynamic safety only, only partial static dynamic safety, or no safety at all. Some examples of programming languages in each of the above categories are: ffl Static and Dynamic Safety. Oberon [22], garbage collected versions of Ada 2 , Java [23] Sather [20] ffl Dynamic Safety Only. Smalltalk [11] Lisp. ffl Partial Static Dynamic Safety. Pascal, Modula 2, and Ada (using explicit deallocation) ffl Unsafe C, C . A whole industry thrives on selling tools to fix the situation, ....
M. Reiser and N. Wirth. Programming in Oberon -- Steps beyond Pascal and Modula. Addison-Wesley, 1992.
....of a particular implementation platform in that, unlike most object oriented data models, it is independent of a particular type model and hence of a particular programming language environment. The generic model has been instantiated in number of environments including ones based on C , Oberon [RW92] and Prolog. We begin in section 2 with a general description of our approach and then give further details of the OM model and OMS system in sections 3 and 4, respectively. Section 5 discusses issues regarding the development of various implementation platforms for the OM model. Concluding ....
....EXODUS [CDG 89]and Comandos C [CBHdP93] storage systems in this way and we now have a corresponding implementation on top of Objectivity DB. Such systems are able to exploit the basic persistence, transaction and distribution facilities of the underlying system. In the Oberon environment [RW92] a system has been developed to support database application programming based on the OM model. As stated in section 2, in this system, it was also necessary to implement a persistent storage system. A key factor in the development of the Oberon based system was that we wanted to support object ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison Wesley, 1992.
....al. 1995; Myricom, 1997] Some are even unable to prevent network deadlocks (see below) eg, most socket based mechanisms. The Gardens Project [Roe and Szyperski, 1998] combines compile time checking of a specialised programming language, Mianjin [Roe and Szyperski, 1997] itself based on Oberon [Reiser and Wirth, 1992]) with a thin high performance run time library (a modified version of AM) to establish abstraction and safety not at the library but at the static language level. A recent addition to Mianjin and the main focus of this paper is a mechanism to efficiently yet safely communicate complex data ....
Reiser, M and Wirth, N (1992). Programming in Oberon -- Steps beyond Pascal and Modula. Addison-Wesley.
....system implemented in Oberon as a COM server under Windows NT and illustratively used by a Visual Basic client. Keywords: Object, Component, COM, Oberon Oberon as an Isolated System Project Oberon [1] was started in 1986 by Niklaus Wirth and the author of this report. Oberon as a language [2] extends the line of Pascal and Modula 2, Oberon as a system is a fully modular and compact operating system for personal computers. The first Oberon implementation ran on Ceres, a proprietary National Semiconductor 32000 based hardware platform. From this original version, several evolutions and ....
Reiser, M., Wirth, N., Programming in Oberon - Steps Beyond Pascal and Modula, AddisonWesley, 1992, ISBN 0-201-56543-9.
....particular implementation platform in that, unlike most object oriented data models, it is independent of a particular type model and hence of a particular programming language environment. The generic model has been instantiated in number of environments including ones based on C , Java, Oberon [RW92] and Prolog. 1.2 OM Framework for Database Development OM is a generic object data model with influences from extended entity relationship models and semantic data models, as well as from object oriented paradigms. There were two main driving forces in the development of the model. First, we ....
M. Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. Addison Wesley, 1992.
....Still, they remain the atoms of replacement and extension. As an aside, modules and possibly subsystems also help to tidy up name spaces, an important aspect when considering extensibility. Modula 2 s modules (Wirth [20] or Ada s packages can well serve this purpose. Oberon (Reiser and Wirth [12]) restricts the module system to a simple flat module space. This is clearly along the lines of providing atoms instead of nested structures with partially static interconnections, as was the case with nested modules in Modula 2 or nested packages in Ada. Ada95 adds module hierarchies in the form ....
Martin Reiser and Niklaus Wirth. Programming in Oberon -- Steps beyond Pascal and Modula. Addison-Wesley, 1992.
No context found.
M. Reiser and N. Wirth, Programming in Oberon: steps beyond Pascal and Modula, ACM Press, New York, 1992. 17
No context found.
Martin Reiser and Niklaus Wirth. Programming in Oberon: Steps Beyond Pascal and Modula. Addison Wesley, Reading, MA, USA, June 1992.
No context found.
M. Reiser and N. Wirth. Programming in Oberon -- Steps Beyond Pascal and Modula. Addison-Wesley, 1992.
No context found.
Reiser and N. Wirth. Programming in Oberon: Steps beyond Pascal and Modula. ACM Press, 1992.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC