The Actra project is investigating future generation industrial computer systems based on the actor or object-oriented metaphor. It is designed to provide an integrated, multi-user, multi-processor object-oriented pro...
详细信息
The Actra project is investigating future generation industrial computer systems based on the actor or object-oriented metaphor. It is designed to provide an integrated, multi-user, multi-processor object-oriented program development environment for use in medium and high performance industrial applications dealing with complex man-machine systems. Typical areas include command and control systems, manufacturing systems, simulation and intelligent assistants. In this paper we have presented concurrentprogramming features of Actra a multiprocessor Smalltalk. The design builds on existing message passing primitives and requires minimal changes to the Smalltalk virtual machine and applications programs. We have introduced operations for creating and communicating between active objects(actors) which are consistent with the object-oriented viewpoint. The resulting system provides a powerful facility for performing anthropomorphic programming in a multitasking/multiprocessor environment.
Several models of concurrency have been proposed. The most conservative of proposals, promoted by Hoare and others, is built using communication between sequential processes. A more radical proposal, namely that of Fu...
详细信息
Several models of concurrency have been proposed. The most conservative of proposals, promoted by Hoare and others, is built using communication between sequential processes. A more radical proposal, namely that of Functional programming, has also developed a rather large following. Concurrency in Functional programming is a result of the fact that all arguments to a function may be evaluated concurrently. However, a critical problem faced by fuctional programming is that functions do not have a history. New developments in concurrent computing require a change in the way we think about programming. As far as the computational model goes, the author feels confident that the actor model provides an abstract general representation for concurrency;other models are either semantically more restrictive or add constructs that do not add computational power. Furthermore, the object-oriented paradigm can build on actors and provide reasonable methods for structuring and interfacing modules.
Adding concurrency to a statically-typed programming language requires facilities to create new processes, to synchronize them, and to allow communication among them. Because a process is structured like an object (da...
详细信息
Adding concurrency to a statically-typed programming language requires facilities to create new processes, to synchronize them, and to allow communication among them. Because a process is structured like an object (data and routines to manipulate the data), there is an existing foundation for adding processes to an object-oriented programming language. Adding static type-checking on communication and maintaining inheritance is more difficult. Most difficult is adding facilities to express complex forms of concurrency, such as ordering calls and replies to and from a process. The design suggested here incorporates type safe communication ideas from the Ada tasking mechanism with the concurrency expressive power of send/receive/reply while retaining most of the traditional object-oriented capabilities.
A major characteristic of many computer systems is the potential sharing of data by a number of concurrent activities. This sharing must be controlled in order to guarantee that the shared data remain in a consistent ...
详细信息
A major characteristic of many computer systems is the potential sharing of data by a number of concurrent activities. This sharing must be controlled in order to guarantee that the shared data remain in a consistent state. This problem has been known for a long time, and a number of solutions have been proposed. However, two new features have appeared in recent systems: object orientation and distribution. The synchronization mechanism presented in this paper has been designed for the object-oriented distributed system Guide, currently being implemented at Grenoble, as a joint project of Laboratoire de Genie Informatique and Bull Research Center. This system also embodies the object-oriented architecture defined in the Comandos project under the ESPRIT Program supported by the Commission of European Communities.
The analysis of concurrent programs is a field which is still in its infancy. This paper describes our work on the analysis of concurrent programs under the Actor model of computation. The Actor model of computation i...
详细信息
The analysis of concurrent programs is a field which is still in its infancy. This paper describes our work on the analysis of concurrent programs under the Actor model of computation. The Actor model of computation is based on computational objects called actors, which process information by sending and receiving messages. Large numbers of actors may be executing concurrently, and communication between actors occurs asynchronously. This paper has presented a number of preliminary results in the run-time analysis of Actor computations. Run-time analyses are very likely to become an important part of the concurrent programmers' toolbox. As we begin to build more of these tools and gain experience with using them, we will be able to more fully explore the capabilities and limitations of the techniques we have developed.
Distributed-memory MIMD computers are cost-effective for many computation-intensive tasks. Unfortunately, it is not always clear how to make effective use of the large numbers of processors available. It is significan...
详细信息
Distributed-memory MIMD computers are cost-effective for many computation-intensive tasks. Unfortunately, it is not always clear how to make effective use of the large numbers of processors available. It is significantly more difficult to write correct programs for these computers than it is for shared memory machines because information can only be shared by sending messages across interprocessor communication links. Thus, the distributed memory execution model implemented by these machines is fundamentally different from the familiar shared memory execution model. The main topics are ease of programming, efficiency issues, and visualization of concurrency.
This paper describes Plasma-II, a 'minimal' extension of Plasma which was the first actor language defined by Hewitt and that has been implemented and in use in Toulouse for about 10 years: a portable version ...
详细信息
This paper describes Plasma-II, a 'minimal' extension of Plasma which was the first actor language defined by Hewitt and that has been implemented and in use in Toulouse for about 10 years: a portable version of a Plasma interpreter was developed using a virtual machine called LILA. The actor paradigm describes a program as a set of autonomous actor instances that communicate via message passing. The only assumption on a message is that it is guaranted to be received in a bounded time interval and that an actor waiting to execute will eventually do so. So depending on the current context, actors can be executed either in a time-sharing, in real parallelism or even sequentially without any impact on the final results (except for the duration of the program).
This paper describes an object-oriented, multiuser, multitasking, operating system (Felix) with high-level language support for systems programming Our aim is to make an execution environment where objects providing s...
详细信息
This paper describes an object-oriented, multiuser, multitasking, operating system (Felix) with high-level language support for systems programming Our aim is to make an execution environment where objects providing services to other programs (objects) can be installed on-the-fly. The objects must be able to communicate safely with each other through a typed interface. There must be a means to perform object-specific cleanup when objects are deleted, and one object must be guaranteed protection against unintentional addressing from other objects. Our solution is an operating system kernel (Felix) providing protected objects which can communicate only through the kernel.
The use of object-oriented programming (OOP) for Artificial Intelligence and Database applications has led to the development of a new OOP model that satisfies requirements for expressiveness and efficiency. Extensibi...
详细信息
The use of object-oriented programming (OOP) for Artificial Intelligence and Database applications has led to the development of a new OOP model that satisfies requirements for expressiveness and efficiency. Extensibility provides true expressiveness without loss of efficiency, which is critical in a language used with large databases. This paper presents the new model that was developed. Emphasis is placed on the use of a self-description of this model to get a extensible language, and the solution this set and relational approach to OOP may provide concerning multiple inheritance questions. The language is reflective because it holds a description of its model within itself, to which it always conforms. Some examples are given on how to take advantage of such features.
Rapid progress of hardware technology makes it feasible to construct a network system consisting of hundreds of small computers. Today, such a system can offer more computing power than a single large computer in a ch...
详细信息
Rapid progress of hardware technology makes it feasible to construct a network system consisting of hundreds of small computers. Today, such a system can offer more computing power than a single large computer in a cheaper way. Moreover, a network computer system is much more flexible and, even when some of the processors fall in trouble, the other processors can possibly continue their work. Wide use of network computer systems is expected in near future. In order to utilize distributed computing systems, we need distributed software. However, the progress of software technology is relatively slow. The design and development of distributed software is a difficult task at least under today's technologies. We need more sophisticated methodologies for design and development of distributed software.
暂无评论