Dennis G. Kafura, R. Greg Lavender · 1993
. A survey of concurrent object-oriented languages is presented. The survey is organized around three models: the Animation Model that describes a variety of relationships between threads and objects, an Interaction Model that classi#es the possible semantics of invocations and returns between a client object and a server object, and a Synchronization Model that shows di#erentways in which concurrentinvocations can be managed bya server.Anumber of representative languages are brie#y presented. The problem of synchronization in concurrent object-oriented languages is considered in detail including a discussion of the inheritance anomaly. A synchronization mechanism, called a behavior set , is shown to avoid this anomaly in certain cases. The implementation of behavior sets in ACT++, an actor-based concurrent programming framework implemented in C++, is described. 1 Introduction This survey of concurrent object-oriented programming languages is organized along the following ...
Cited by 0
Murat Karaorman, John Bruno · 1993
This paper describes design and implementation issues for introducing concurrency to object-oriented programming. Designing a concurrency class library along with an object-oriented concurrent program design method is presented as the prefered way to extend an existing objectoriented language. A set of classes designed to facilitate concurrent programming using the sequential objectoriented language EIFFEL is proposed without modifying or extending the language or its runtime system.. The main concurrency abstractions provided by the approach are: objects as processes -- active objects -- and asynchronous remote method invocation with data-driven synchronization. 1 Introduction Object-oriented paradigm appears to be wellsuited for concurrent programming. Objects can be used to implement not only data-structures but also processes that are objects with a protected internal state and a prescribed behavior. Unifying the notion of object with the notion of process provides the bridge to...
Cited by 0
Jiajun Chen, Xiaodong Yuan, Guolian Zhengp · ACM SIGSOFT Software Engineering Notes · 1998
This paper presents a concurrent object-oriented programming (COOP) model established around concurrent objects which may have a body. Once an object with a body is created, its body begins to run as a separate execution thread of the object. Distinguished from some active-object-based concurrent object-oriented models, the object body in our model is not used for the concurrency control of objects, but only as a mechanism to introduce concurrent executions into OO model. Concurrency control is specified by the attributes of objects and the control codes are generated by a compiling system based on these attributes. In addition, objects should be designed in such a way that they can be used in both sequential and concurrent environments, no matter whether they have a body or not. In our model, several execution threads may coexist in an object and some synchronization mechanisms are provided to control the concurrent executions of these threads. The paper presents two examples of concurrent programming with our model.
Cited by 0Open access
Hilary K. Browne · 1997
Over the past decade, both object-oriented and concurrent programming languages have become popular tools for solving complex problems, and language designers have recognized that combining these two paradigms can be useful. Concurrency allows object-oriented languages to address naturally concurrent problems and potentially speed up execution. Object-oriented features can improve the organization of concurrent programs and potentially remove some of the low-level process control by encapsulating it in object structure. In this thesis, we explore the addition of concurrency to the object-oriented language LOOM, focusing on providing a safe, easy to use language for programmers familiar with objectoriented programming but not necessarily with concurrency. We introduce a large grain of concurrency by identifying processes with objects, and allow these objects to communicate both synchronously and asynchronously using the existing message structure. Special semantics for self-inflicted me...
Cited by 0
Jayadev Misra · 1998
Object-based sequential programming has had a major impact on software engineering. However, object-based concurrent programming remains elusive as an effective programming tool. The class of applications that will be implemented on future high-bandwidth networks of processors will be significantly more ambitious than the current applications (which are mostly involved with transmissions of digital data and images), and object-based concurrent programming has the potential to simplify designs of such applications. This paper shows that many of the programming concepts developed for databases, object-oriented programming and designs of reactive systems can be unified into a compact model of concurrent programs that can serve as the foundation for designing these future applications.
Cited by 0
Martin Müller, Tobias Müller, Christian Schulte et al. · 1995
Oz is a concurrent language providing for functional, object-oriented, and constraint programming. This document describes a number of DFKI Oz demo applications chosen from domains Oz has been designed for. The demos cover important aspects as concurrent programming, constraint programming, real-time programming, multi agent systems, and graphical user interfaces.
Cited by 0
Ecnica De Lisboa, Concurrent Object-Oriented Programming · 1999
Cited by 0
David Holmes · 1999
The integration of concurrent and object-oriented programming has been a challenge for over two decades. In this thesis we explore synchronisation in concurrent object-oriented programming and present a clear perspective on the problems in terms of five aspects of synchronisation: exclusion, state, coordination, response and scheduling. These aspects show synchronisation as the multi-faceted concern that it is, rather than the monolithic concern it is normally presented as. For each aspect we identify a set of goals that a concurrent object-oriented programming system should meet for effective support of synchronisation, and for the reuse of synchronisation and functional code. We present the Synchronisation Rings model, a compositional approach to enforcing synchronisation constraints that layers synchronisation controls around a functional core. This composition of different layers of synchronisation control maps neatly onto the different aspects of synchronisation. Using this app...
Cited by 0
Enn Tyugu Vladimir, Vladimir Vlassov, Mattin Addibpour · 2007
An extensible object-oriented platform NUTS for distributed computing is described which is based on an object-oriented programming environment NUT, is built on top of the Parallel Virtual Machine (PVM), and hides all low-level features of the latter. The language of NUTS is a concurrent object-oriented programming language with coarsegrained parallelism and distributed shared memory communication model implemented on a distributed memory architecture. It differs from other languages of concurrent programming in the following: concurrent processes are represented by packages which are semantically richer entities than objects, inter-process communication is performed in terms of classes, objects, scripts and packages, using the EDA communication model; processes can be arranged into structured collections: grids which enable one to program data-parallel computations on a high level; sequential segments of programs can be synthesized automatically from specifications represented as clas...
Cited by 0
Enn Tyugu, Vladimir Vlassov, Mattin Addibpour · 2007
An extensible object-oriented platform NUTS for distributed computing is described which is based on an object-oriented programming environment NUT, is built on top of the Parallel Virtual Machine (PVM), and hides all low-level features of the latter. The language of NUTS is a concurrent object-oriented programming language with coarsegrained parallelism and distributed shared memory communication model implemented on a distributed memory architecture. It differs from other languages of concurrent programming in the following: concurrent processes are represented by packages which are semantically richer entities than objects, inter-process communication is performed in terms of classes, objects, scripts and packages, using the EDA communication model; processes can be arranged into structured collections: grids which enable one to program data-parallel computations on a high level; sequential segments of programs can be synthesized automatically from specifications represented as clas...
Cited by 0
M. Lobosco, C. Amorim · 2008
1. INTRODUCTION Java [4] is an object-oriented programming language, developed by Sun Microsystems, which incorporates features such as multithreading and primitives for concurrent programming. One
Cited by 0
Stephan Reitzner, Stephan Reitzner · 1996
1 Synchronization of concurrent activities is a major issue with concurrent object-oriented programming languages, as we are dealing with fine grained synchronization involving objects and methods. In this paper we propose the separation of the synchronization code from the algorithmic, sequential code of a concurrent object, arriving at two objects: one that implements the algorithmic and sequential behavior, and the other one that is responsible for controlling concurrency. Our synchronization scheme only uses standard object-oriented mechanisms, so that it can easily be integrated into existing, sequential languages. One of the major problems of concurrent, object-oriented programming languages (COOPLs) is inheritance. Because of the strong ties between an implementation and the associated synchronization description in the base class we suffer from the inheritance anomaly. This anomaly limits the reuse of code by inheritance. By moving the synchronization code into a separate obje...
Cited by 0
Ken Wakita, Yoshiki Ohshima · 2007
Object-Oriented concurrency model has been recognized as good programming paradigm in concurrent and distributed programming. However, concurrency and synchronization primitives provided by the concurrent object-oriented languages are not expressive enough for complicated communication and synchronization schemes that are required by practical applications. The article proposes a highly extensible computation model that introduces two novel ideas of in concurrent objectoriented computation model: namely transactions and communicators. The concurrent transaction mechanism guarantees collective data integrity of a subcomputation and makes its activity appear atomic relative to the rest of the overall concurrent computation. Thecommunicator is a programmable abstraction of message-basedcommunication protocols. Communicator facilities allow the programmer to add arbitrary communication protocol to the programming language in a seamless manner with respect to the built-in communication prim...
Cited by 0
Yoshihiro Oyama, Kenjiro Taura, Akinori Yonezawa · 1996
The efficiency of multithreading is quite essential to the overall performance of concurrent object-oriented languages. It is very inefficient to implement such languages by using thread libraries. In this paper, we propose a framework that efficiently compiles languages which supports dynamic thread creation. In the framework, we designed and implemented a programming language Schematic, which is a concurrent object-oriented extension to Scheme. As an intermediate language of Schematic, we are using a subset of process calculus HACL, which is simple but has enough power to express higher-level constructs. We developed several optimization techniques in the intermediate language, and achieved very high performance in benchmark programs. 1 Introduction High performance concurrent programming languages are getting more and more important as parallel computers and workstation clusters spread widely. Of these languages, concurrent object-oriented languages are paid much attention because ...
Cited by 0
Alfredo Weitzenfeld, Michael A. Arbib · 1991
This paper discusses the issues in simulating neural networks using an object-oriented concurrent programming framework, based on our experience in developing two generations of the NSL (Neural Simulation Language) simulation system. The second generation simulation system, NSL 2.0, was designed and implemented utilizing object-oriented programming concepts. We close with future design and implementation directions.
Cited by 15Open access
Authors, UNSPECIFIED · Computer Science Technical Reports (Virginia Tech) · 1988
This research investigates building real-time systems with a concurrent object oriented programming language. There are close parallels between the characteristics of concurrent object oriented languages and real-time systems. The language's underlying model of concurrency reflects the distributed and concurrent nature of real-time systems while the language's object orientation and the reusability properties of class inheritance address the embedded and evolutionary aspects of real-time systems. Automatic reclamation of concurrent objects frees programmers from the error-prone task of explicit resource management of dynamically created objects. Reclamation of concurrent objects provides an integrated management of both processing and memory resources.
Cited by 0
Dan Suciu, Alina Cut · SHILAP Revista de lepidopterología · 2010
Nowadays, the concern of computer science is to find new methodologies that help decomposing large programs and run them efficiently onto new parallel machines. Thus, the popularity of concurrent object-oriented programming has increased proportionally with the market requirements of concurrent and distributed systems that meet simplicity, modularity and code reusability. The purpose of this paper is to define a class library based on Active Object pattern introduced in [LAV96], which has a high level of extensibility. Class library's main objective is to help in building concurrent object-oriented applications with a minimum effort and using a significant amount of already existing code. This approach addresses the problem of integrating concurrency with object-oriented programming and respects the principles imposed by them. In order to present the main features of our model a sample application is presented.
Cited by 0Open access
Martin Henz, S.A. Reiter · 2007
The goal is the design and implementation of TOTO, a tool which will provide the possibility of visualizing the objects of a running Oz program. The programmer will have the ability to trace the behaviour of and the interaction between objects during run time. Concurrent objects are simple to use but powerful, allowing easy programming of complex interactions between objects. This might be difficult to understand, so this tool can be used for debugging as well as for learning the paradigms of concurrent object-oriented programming. The realisation of TOTO is done in Oz itself, by developing and implementing a new object protocol. Keywords--- Oz, class, object, debugging, programming environment 1. Intention Oz [3] is a concurrent constraint programming language, based on a new computation model providing a uniform foundation for higher-order functional programming, constraint logic programming and concurrent objects with multiple inheritance. Learning the paradigm of concurrent obje...
Cited by 0
Tzilla Elrad, Atef Bader · 2008
Most of the current concurrent object-oriented approaches do not address the issue of separation of concern between synchronization and scheduling controls inside the concurrent objects. This paper presents a concurrent object-oriented model in which a concurrent object, which represents a shared resource abstraction in our model, is decomposed into a hierarchy of abstractions: a shared data abstraction, a synchronization abstraction, and a scheduling abstraction. It will be shown that the separation of concern among the three major components of the concurrent objects avoids many of the conceptual difficulties that arise when integrating concurrency into object-oriented paradigm. Our model provides explicit, declarative, and reusable first class components for synchronization and scheduling controls as it has been the case for data and operations in the sequential object-oriented languages. The notion of scheduling policy inheritance in our model facilitates the process of engineering adaptability in the development of the intelligent reactive/adaptive systems. keywords: Concurrent object-oriented programming, Soft-real-time/Adaptive systems, Reuse, Synchronization constraints, Scheduling protocols, Adaptive-Arena.
Cited by 0
Patrick Varone · 1996
. This report presents an implementation of McHale's "Generic Synchronization Policies" (GSP) in the Pict programming language. Since Pict is defined by mapping programming language constructs to the pi calculus, this exercise helps us on the one hand to assign an operational semantics to GSP, and on the other hand to explore the use of Pict and the pi calculus as a basis for modelling advanced object-oriented programming constructs. Keywords: Object-based concurrency, synchronization, p calculus, semantics. CR Categories and Subject Descriptors: D.1.3 [Programming Techniques]: Concurrent programming; D.1.5 [Programming Techniques]: Object-Oriented Programming; D.2.m [Software Engineering]: Reusable Software; D.3.1 [Programming Languages ] Semantics; D.3.2 [Programming Languages] Concurrent, distributed and parallel languages. Author's address: Institut fr Informatik (IAM), Universitt Bern, Neubrckstrasse 10, CH-3012 Berne, Switzerland. E-mail: scg@iam.unibe.ch. WWW: http://iamwww....
Cited by 0