Results 1 - 10
of
30
Regular Types for Active Objects
, 1993
"... Previous work on type-theoretic foundations for object-oriented programming languages has mostly focused on applying or extending functional type theory to functional "objects." This approach, while benefiting from a vast body of existing literature, has the disadvantage of dealing with state change ..."
Abstract
-
Cited by 181 (5 self)
- Add to MetaCart
Previous work on type-theoretic foundations for object-oriented programming languages has mostly focused on applying or extending functional type theory to functional "objects." This approach, while benefiting from a vast body of existing literature, has the disadvantage of dealing with state change either in a roundabout way or not at all, and completely sidestepping issues of concurrency. In particular, dynamic issues of non-uniform service availability and conformance to protocols are not addressed by functional types. We propose a new type framework that characterizes objects as regular (finite state) processes that provide guarantees of service along public channels. We also propose a new notion of subtyping for active objects, based on Brinksma's notion of extension, that extends Wegner and Zdonik's "principle of substitutability" to non-uniform service availability. Finally, we formalize what it means to "satisfy a client's expectations," and we show how regular types canbe used...
The Programming Language Jigsaw: Mixins, Modularity And Multiple Inheritance
, 1992
"... This dissertation provides a framework for modularity in programming languages. In this framework, known as Jigsaw, inheritance is understood to be an essential linguistic mechanism for module manipulation. In Jigsaw, the roles of classes in existing languages are "unbundled," by providing a suite o ..."
Abstract
-
Cited by 138 (4 self)
- Add to MetaCart
This dissertation provides a framework for modularity in programming languages. In this framework, known as Jigsaw, inheritance is understood to be an essential linguistic mechanism for module manipulation. In Jigsaw, the roles of classes in existing languages are "unbundled," by providing a suite of operators independently controlling such effects as combination, modification, encapsulation, name resolution, and sharing, all on the single notion of module. All module operators are forms of inheritance. Thus, inheritance is not in conflict with modularity in this system, but is indeed its foundation. This allows a previously unobtainable spectrum of features to be combined in a cohesive manner, including multiple inheritance, mixins, encapsulation and strong typing. Jigsaw has a rigorous semantics, based upon a denotational model of inheritance. Jigsaw provides a notion of modularity independent of a particular computational paradigm. Jigsaw can therefore be applied to a wide variet...
Typed Concurrent Objects
- ECOOP'94, LNCS
, 1994
"... Based on a name-passing calculus and on its typing system the paper shows how to build several language constructors towards a strongly-typed objectoriented concurrent programming language. The basic calculus incorporates the notions of asynchronous labelled messages, concurrent objects composed of ..."
Abstract
-
Cited by 70 (10 self)
- Add to MetaCart
Based on a name-passing calculus and on its typing system the paper shows how to build several language constructors towards a strongly-typed objectoriented concurrent programming language. The basic calculus incorporates the notions of asynchronous labelled messages, concurrent objects composed of labelled methods, and a form of abstraction on processes allowing in particular to declare polymorphic classes. We introduce a notion of values as name-expressions, and show how to create subclasses of existing classes. A systematic translation of the derived constructors into the basic calculus provides for semantics and for typing rules for the new constructors. Introduction Concurrent objects constitute a convenient tool to describe concurrent and distributed computations. Types enforce a discipline in the usage of the programming language constructors that not only provides for partial-correctness, but also helps in writing clear programs. Furthermore, a type for a program often gives s...
Component-Oriented Software Technology
, 1995
"... Modernsoft aresystE0 are increasingly requiredt be open and dist ibut81 Suchsyst08 are opennot only int erms ofnet orkconnectR06 andint0 operabilit support forhet1 ogeneous hardware andsoft are plat orms,but above all, int2 ms of evolving and changingrequirement . Alt169, object,7 ient3 t331,7E8 off ..."
Abstract
-
Cited by 50 (9 self)
- Add to MetaCart
Modernsoft aresystE0 are increasingly requiredt be open and dist ibut81 Suchsyst08 are opennot only int erms ofnet orkconnectR06 andint0 operabilit support forhet1 ogeneous hardware andsoft are plat orms,but above all, int2 ms of evolving and changingrequirement . Alt169, object,7 ient3 t331,7E8 offers some relief,t o a largeext27 t he languages,met2R8 andtd,2 fail t addresstd needs of opensystE3 becausetc y donot escape from tadit192, models of soft are development tpm assume syst, requirement t be closed and st ble.We argue te, open systE8 requirement can only beadequat7E addressed byadopt9, a component,t ient0 as opposedt a purelyobject3E ient2 soft are development approach, byshift7, emphasis away from programming and t wards generalizedsoft arecomposit739 1.1 IntrotrWk5k There has been ac8P8("NP( trend in the development of softwareapplic("NP( away from crom"5 proprietary systems towardsso-c)55( open systems. This trendce be largely attributed to the rapid advancE inc")PPFE hardware tec)F5E"N that have vastlyincy"H5F the cAAF("N)5jjF power available to end-userapplic"P(HHj With new possibilitiescos new needs: in order to survive,c"))AAF" ve businesses must be able to effec) vely exploit newtecP"N)P( as itbecj() available, so existingapplicP)Pjj must be able to work with new, independently developed systems. Wec) see, then, that open systems must be "open" in at least three important ways [49]: 1. Topology: openapplic)E"NE run onc)jEH("NEj networks. 2. PlatF'"A the hardware and software platforms are heterogeneous. 3. EvolutAD' requirements are unstable andc"P(AA)"N ccP(A *In ObjectADL/F/"t Softct CompositL/ , O. Nierstrasz and D. Tsic5A"NE) (Ed.),Prentic Hall, 1995, pp. 3-28. For more information, please see:http://iamw3(0(0(0(0(w157(158(159 4 Componen...
Bisimulations in the join-calculus
- Theoretical Computer Science
, 1998
"... We propose an object-oriented calculus with internal concurrency and class-based inheritance that is built upon the join calculus. Method calls, locks, and states are handled in a uniform manner, using asynchronous messages. Classes are partial message definitions that can be combined and transforme ..."
Abstract
-
Cited by 48 (7 self)
- Add to MetaCart
We propose an object-oriented calculus with internal concurrency and class-based inheritance that is built upon the join calculus. Method calls, locks, and states are handled in a uniform manner, using asynchronous messages. Classes are partial message definitions that can be combined and transformed. We design operators for behavioral and synchronization inheritance. We also give a type system that statically enforces basic safety properties. Our model is compatible with the JoCaml implementation
Requirements for a Composition Language
, 1995
"... Abstract The keyrequiwD6( for open systemsi that they be flexi55N or recomposab7 .Thi suggests that they must first of all be composable.Object-oriw2+ techniori help by allowio appli))1wD6 to be vi wed ascomposiD6+ of collaborati ( objects, but areliw2+ i supportiD other kier ofabstracti6+ that ma ..."
Abstract
-
Cited by 47 (6 self)
- Add to MetaCart
Abstract The keyrequiwD6( for open systemsi that they be flexi55N or recomposab7 .Thi suggests that they must first of all be composable.Object-oriw2+ techniori help by allowio appli))1wD6 to be vi wed ascomposiD6+ of collaborati ( objects, but areliw2+ i supportiD other kier ofabstracti6+ that may have finer or coarsergranulari2 than objects. Acomposi676 language supports thetechni21 requi21wD67 of acomponent-orii development approach by shi62+N emphasi from programmiD andiw151+NwD6 of classes tospeci)wD657 andcomposiwD6 of components. Objects are vi wed as processes, and components areabstracti61 over the object space.Anappli(wD61 i vi wed as an expli5+ composiw62 of software components. Bymaki6 softwarearchiew15) expli51 andmani)2+wD62 we expect to better support applitw62+ evolutiN and flexi2(7( . Inthi posi267 paper wewi5 elaborate ourrequi27wD6N andoutli( a strategy for the desi6 andiw2111)wD7)N) of acomposi7)N language for the development of open systems. * In Proceedi+ of the...
A Calculus for Concurrent Objects
- Proceedings of the 7th International Conference on Concurrency Theory (CONCUR '96), LNCS 1119
, 1996
"... . This paper presents an imperative and concurrent extension of the functional object-oriented calculus described in [FHM94]. It belongs to the family of so-called prototype-based object-oriented languages, in which objects are created from existing ones via the inheritance primitives of object exte ..."
Abstract
-
Cited by 40 (2 self)
- Add to MetaCart
. This paper presents an imperative and concurrent extension of the functional object-oriented calculus described in [FHM94]. It belongs to the family of so-called prototype-based object-oriented languages, in which objects are created from existing ones via the inheritance primitives of object extension and method override. Concurrency is introduced through the identification of objects and processes. To our knowledge, the resulting calculus is the first concurrent object calculus to be studied. We define an operational semantics for the calculus via a transition relation between configurations, which represent snapshots of the run-time system. Our static analysis includes a type inference system, which statically detects message-not-understood errors, and an effect system, which guarantees that synchronization code, specified via guards, is side-effect free. We present a subject reduction theorem, modified to account for imperative and concurrent features, and type and effect soundne...
Component-Oriented Software Development
- Communications of the ACM
, 1992
"... Introduction Object-oriented programming techniques promote a new approach to software engineering in which reliable, open applications can be largely constructed, rather than programmed, by reusing "frameworks" [3] of plug-compatible software components. Although the dream of a components-based so ..."
Abstract
-
Cited by 38 (2 self)
- Add to MetaCart
Introduction Object-oriented programming techniques promote a new approach to software engineering in which reliable, open applications can be largely constructed, rather than programmed, by reusing "frameworks" [3] of plug-compatible software components. Although the dream of a components-based software industry is very old [9], only now does it appear that we are close to realizing the dream. The reason for this is twofold: . Modern applications are increasingly open in terms of topology, platform and evolution, and so the need for a component-oriented approach to development is even more acute than in the past; . Objects provide an organizational paradigm for decomposing large applications into cooperating objects as well as a reuse paradigm for composing applications from pre-packaged software components. Despite the contributions of object-oriented technology, there are several open research problems that must be resolved t
Asynchronous and Deterministic Objects
- IN 31ST ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 2004
"... This paper aims at providing confluence and determinism properties in concurrent processes, more specifically within the paradigm of object-oriented systems. Such results should allow one to program parallel and distributed applications that behave in a deterministic manner, even if they are distrib ..."
Abstract
-
Cited by 31 (15 self)
- Add to MetaCart
This paper aims at providing confluence and determinism properties in concurrent processes, more specifically within the paradigm of object-oriented systems. Such results should allow one to program parallel and distributed applications that behave in a deterministic manner, even if they are distributed over local or wide area networks. For that purpose, an object calculus is proposed. Its key characteristics are asynchronous communications with futures, and sequential execution within each process. While
Observations On The Complexity Of Composable Simulation
, 1999
"... We consider the issue of composability as a design principle for simulation. While component-based modeling is believed to potentially reduce the complexities of the modeling task, we describe a few of the complexities introduced through composability. We observe that these complexities might tend t ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
We consider the issue of composability as a design principle for simulation. While component-based modeling is believed to potentially reduce the complexities of the modeling task, we describe a few of the complexities introduced through composability. We observe that these complexities might tend to offset the benefits of component-based modeling on a large scale. 1 INTRODUCTION A recent topic of interest in the general software community involves the notion of component-based software development. Representing the latest attempt to describe effective mechanisms for reusability, component technologies such as CORBA, COM/DCOM/OLE, ActiveX and JavaBeans, to name but a few, have received significant attention. Within the simulation community, component-based modeling is becoming increasingly prevalent. Within the defense simulation community, for example, a significant investment has been made to engender system-level reuse through interoperability. Standards like the High Level Archi...

