| Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the Beta Programming Language. Addison Wesley, 1993. |
....3 can be resolved in several different ways. Delegation based languages generally allow the child object to override methods in the parent, changing its behaviour. An elegant solution to name capture along different sub typing paths in this context is given by Kniesel[12] The Beta language[14] prohibits simple overriding but allows a child method to be called within the parent method. Neither approach effectively addresses untrusted downloaded code or transparent delegation to remote objects. Many groups are working towards the design and implementation of mobile agent systems a ....
Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. Object-oriented programming in the BETA programming language. Addison-Wesley, 1993.
....the type tags that are used for dispatching in CLOS. The inner construct bears some relationship to call next methodin CLOS, which allows a method in a class to invoke the instance of that method in the next class in the inheri tance chain. Mixin modules are also related to BETA patterns [21], and indeed our inner construct is deliberately named to suggest the analogy with the BETA construct. Like BETA, implementa tion inheritance with mixin modules is based on incremental ex tensions only, and does not allow the overriding of existing definitions (Smalltalk style method overrides) ....
Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. ACM Press, 1993.
....with a class, a new class, and therefore a new type, is created, while, in Dec Java, the composition is moved at instance level so neither new classes nor new types are created. We observe that our mechanism of method specialization o ers a similar computational feel as the Beta inheritance [15] that is designed to avoid the replacement of a method by a completely di erent method in subclasses (as via standard overriding) A Beta virtual method in a class A can be seen as a function of its rede ned version in subclass B: the inner statement in the body of the method in class A refers to ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
....types [MMP89, Tho97, BOW98] can model the essential properties of signatures with abstract types in ML like module systems [Mac84] In principle, this is not a new development. Class nesting has been introduced already in Simula 67 [DMN70] whereas virtual or abstract types are present in BETA [MMPN93] as well as more recently in gbeta [Ern99] Rune [Tor02] and Scala [Ode02] An essential ingredient of these systems are objects with type members. There is currently much work that explores the uses of this concept in object oriented programming [SB98, TT99, Ern01, Ost02] But its type ....
O. Lehrmann Madsen, B. Mller-Pedersen, and K. Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, June 1993. ISBN 0-201-62430-3.
....other components. However, the semantic problems that led us to decision that superclasses should not be imported, remain intact. The notion of package sealing and even class sealing dates back to early language designs. For instance, BETA also has the notion of class sealing and module sealing [9]. The term sealed has a different meaning in Beta, in C#, and as defined in the early Dylan language. Sealing in these languages mean final (as defined in Java) Subsequently Dylan extended the meaning of sealing by allowing sealed classes to be extended only within a library. Dylan uses ....
O. Lehrmann Madsen, B. Mller-Pedersen, and K. Nygaard. Object Oriented Programming in the Beta Programming Language. Addison-Wesley Publishing Company, 1993.
....[3] did support nested class declarations. Although most succeeding object oriented languages left them out, a few object oriented languages follow Simula and support various kinds of nesting. For example, Smalltalk [9] has special syntax for block objects, similar to anonymous functions. Beta [17] provides patterns, unifying classes and functions, that can be nested arbitrarily. More recently, inner classes have been popularized by their inclusion in Java 1.1 [10, 14] Inner classes are useful when an object needs to send another object a chunk of code that can call the rst object s ....
....call it an enclosing instance) of the enclosing block in which the class is de ned. Thus, the direct enclosing instance must be shared among the methods, resulting in the above restriction; on the other hand, this scheme makes the notation of quali ed super, found in Java, unnecessary. Beta [17], a successor of Simula, also allows nested class de nitions (as an instance of nested patterns , the only abstraction mechanism in Beta, unifying classes and procedures) Their basic behavior is the same as Java s inner classes in the sense that each method can have its own environment derived ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the Beta Programming Language. Addison-Wesley, 1993.
....notations are often characterized as being easy to apply and understand, but imprecise. This is however not always the case. A graphical notation can be just as precise as a textual, and they can contain the same amount of information. This has been illustrated in e.g. the Mjolner BETA system [40], where an object oriented program can be manipulated in a conventional (character and linebased) text editor, in a syntax directed editor, or through a graphical representation. This is made possible through a common underlying representation of the program (in this case an abstract syntax ....
.... understanding of phenomena and concepts [36] Conceptual programming can be considered a natural extension of the scandinavian school of objectoriented programming, where a program execution is regarded as a physical model, simulating the behavior of a real or imaginary part of the world [40]. The examples that are used to illustrate the application of conceptual programming [32, 36, 35, 37, 34] are all examples of building models of a problem domain. This fact reinforce our belief that conceptual programming was never intended to support the description of software architectures. ....
[Article contains additional citation context not shown here]
Ole Lehrmann Madsen, Birger M011er-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
....a name. Typical examples would be global variables in C [19] or Pascal [17] static variables in a C [28] class or method, instance variables in a Java [14] object, local variables in a Python [22] method invocation, but also function arguments and return values in Haskell [18] patterns in Beta [23], and structures in SML [24] The ability of all these entities to carry information is not directly useful. It only becomes useful when information produced by one part of a program execution is communicated to another part, thereby in uencing actions taken or values produced. These entities are ....
....happen indirectly. 5 Related Work Since the comparison between MMs and ordinary methods was the main topic of Sec. 3.1, a kind of related work has already played an important role. However, some other mechanisms still need to be considered. First, gbeta is a generalization of the language Beta [23], and gbeta owes much to Beta. The uni cation of classes and methods into the more general concept of a pattern originated in Beta and has been upheld in gbeta. The INNER mechanism also originated in Beta, and the ability to access state in another MM in gbeta originates in the Beta inheritance ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the BETA Programming Language. Addison-Wesley, Reading, MA, USA, 1993.
....9,10 A complete bibliography of functional languages is too voluminous to be included. The Scheme language is described in [30] the ML language in [67] and the Miranda language in [107] Simple polymorphic type systems are introduced in [47, 66] Slide 12,18 Simula and Beta are described in [36, 37, 56, 62]; Smalltalk in [42, 43] CLOS in [53] Self in [108, 29, 26] C in [98, 97, 100] and Eiffel in [64, 65, 39] Slide 21 26 The formalization of coercion functions is found in [89, 90] Slide 27 The use of coercion theory for phrase types is developed in [91, 75, 92] and for implicit scalings ....
.... 28 38 The basic encoding is presented in the papers [17, 21] Slide 32 34 The update problem is made clear in [12] Slide 35 The idea of mutable types is presented in [18] Slide 40 Simula s types are described in [36] C s types in [98, 38] Eiffel s types in [65] and Beta s types in [60, 62]. Slide 41 50 The ideas of types as sets of classes and type checking as constraint satisfaction are developed in [77, 80, 82, 83] Slide 52 References on the methodological aspects of inheritance are too numerous to cite. An example of the Scandinavian school is [54] the use of undisciplined ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the Beta Programming Language. Addison-Wesley, 1993.
....specifications. 1 Introduction Aliasing is endemic in object oriented programming [22] Objects are useful for modelling abstractions from the program s application domain because objects have identity even if an object s state or behaviour changes, the object is always the same object [30]. Unfortunately, object identity immediately leads to inter object aliasing, because objects refer to each other via their identities. Because an object s state can change while its identity remains the same, a change to an object can affect any number of other objects which refer to it, even ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kirsten Nygaard. ObjectOriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
....nested object iterator is an internal object that explicitly o ers extra public services to the aggregate object s clients. Nested objects also require special language support, as provided by Java 2 s inner classes and illustrated in the example [12] or by the nested classes in Simula and Beta [3, 13]. Microsoft s COM component model can provide a similar e ect, with one component supporting multiple instances of a single interface [5] 2.4: Single Integral Cursor Early versions of the Ei el libraries [14] used a rather di erent design for iterators which we call a Single Integral Cursor. In ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
....(8) expresses that C r i is a subclass of both C r j and C r k . Note that these relations are declarative in the sense that they are userdefined, but automatically and implicitly applied in all derived families. 6 Related Work The language gbeta is a generalization of the language Beta [14], and many properties are shared between the two languages. The example in Fig. 5 could in principle be written in Beta, although the method touches would have to be expressed di#erently. The other examples expressed in gbeta cannot be expressed similarly in Beta, since they exploit the more ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the BETA Programming Language. Addison-Wesley, Reading, MA, USA, 1993.
....right 9 partitioned not partitioned try . try . terminate( E e ) catch( E e ) if ( resumable ) cleanup( e ) cleanup( e ) unwind; resume( E e ) else recover( e ) recover( e ) Fig. 3. Handler Partitioning example of Figure 3. The VMS and the Beta [28] exception handling systems are two examples of this approach. Obviously, more flexible handlers can be written without handler partitioning. 11 EXCEPTION PARTITIONING This section discusses two issues about exception partitioning: partitioning of exceptions into categories throw only, resumeonly ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard, Object-oriented Programming in the BETA Programming Language, Addison-Wesley, 1993.
....INNER; notify #) draw: # do nPos= puttext; pos putint; INNER #) pos: integer #) Observer: # onNotify: # do s. draw; INNER #)#) #) Box 1 Box 1 shows the observer design pattern class family, expressed in the language gbeta [2, 3, 4] which is a generalized version of Beta [7]. It is our hope that this design pattern is so well known that the Beta style syntax will be readable even by people who do not know Beta or gbeta, but let us rst give 2 a few basic directions as to how the syntax should be understood. Declarations are on the form Id : Mark Exp where Id is the ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison -Wesley, Reading, MA, USA, 1993.
....##### ## ### ## Since wemaychoose to release all the delayed method invocations in case of a transaction commit, and we may just throw them away in case of a transaction abort, this is sucient to support the desired interaction between the two aspects. 5 4 Related Work In the language #### [5], syntax based modularization has been used for many years; in that context it is called the fragment language . It is essentially what we have described here. However, because of problems with separate compilation of modules of this sort, the #### fragment language has always been restricted ....
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. Object-OrientedProgramming in the BETA Programming Language. Addison -Wesley, Reading, MA, USA, 1993.
....This convergence is driven by the demands of large scale component systems. Objectoriented languages for medium scale systems such as Ei#el or Sather still worked with an unstructured set of classes, but as systems grow this becomes less practical. Consequently, more recent languages such as Beta [MMPN93] or Java [GJS96] allow for class nesting. Class nesting raises issues such as hiding and refinement that have first been studied in module systems. On the other hand, recent module systems embody many of the properties of class systems, e.g. first class modules[Rus98] mixin modules [Dug96] or ....
O. Lehrmann Madsen, B. Mller-Pedersen, and K. Nygaard. Object Oriented Programming in the BETA Programming Language. ddison Wesley, June 1993.
....1 1. Introduction Current object oriented programming languages are not able to support both, rapid prototyping and production programming, equally well. Today the requirements of production programmers are best fulfilled by strongly typed, inheritance based 1 languages ( Strou91] Meye92] MMN93] whereas exploratory programmers prefer type free ( GR89] or even delegation based ( LTP86] Lieb86] US87] systems. Delegation based languages have introduced a uniform, type and class free object model and the concept of delegation, a dynamically modifiable inheritance relationship ....
....whereas delegation based means object oriented languages based on prototypical objects and delegation . 2 In most object oriented languages self denotes the receiver of the message that is being evaluated. The keywords current in Eiffel [Meye92] and this in Simula ( DMN68] BETA ( MMN93] and C ( Strou91] have the same meaning. 2 Our understanding of delegation is the one initially introduced in actor based languages (e.g. Lieb86] and used today in languages like NewtonScript ( Smit94a b] Cecil ( Cham93] and SELF ( US87] Delegation means that messages that cannot be ....
[Article contains additional citation context not shown here]
Ole Lehrmann Madsen, Birger Moller-Pedersen, Kristen Nygaard: "Object-Oriented Programming in the BETA Programming Language". Addison-Wessley and ACM Press 1993.
....http: www.cs.ucsb.edu oocsb MICRO 31, Dallas, TX, December 1998 2 2. Benchmarks Our main benchmark suite consists of large objectoriented C applications ranging from 8,000 to over 75,000 non blank lines of C code each (see Table 1) and beta, a compiler for the Beta programming language [MMN93], written in Beta. We also measured the SPECint95 benchmark suite with the exception of compress which executes only 590 a SunSoft version 1.3 b Java High level Class Modifier c hardware description language compiler d SUIF 1.0 e Fresco X11R6 library branches during a complete run. ....
Ole Lehrmann Madsen, Birger Moller-Pedersen, Kristen Nygaard. Object-Oriented Programming in the Beta Programming Language. Addison-Wesley 1993.
No context found.
Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the Beta Programming Language. Addison Wesley, 1993.
No context found.
Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the Beta Programming Language. Addison Wesley, 1993.
No context found.
O. Lehrmann, B. Moller-Pedersen, and K. Nygaard. Object-Oriented Programming in the BETA Programming Language. ACM Press, 1993.
No context found.
Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. Object-oriented programming in the BETA programming language. ACM Press/Addison-Wesley Publishing Co., 1993.
No context found.
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. Object Oriented Programming in the Beta Programming Language. Addison-Wesley, 1993.
No context found.
Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen Nygaard. ObjectOriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
No context found.
O. Lehrmann Madsen, B. Mller-Pedersen, and K. Nygaard. Object Oriented Programming in the BETA Programming Language. Addison-Wesley, June 1993.
First 50 documents Next 50
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