The object-oriented style of programming (OOP) is gaining increasing importance as a practical technique for organizing large designs and programs. Another striking aspect of OOP is its potential for concurrent and di...
详细信息
The object-oriented style of programming (OOP) is gaining increasing importance as a practical technique for organizing large designs and programs. Another striking aspect of OOP is its potential for concurrent and distributed applications which is based on the fact that objects may coexist in time and concurrently may exchange information by message passing. Up to now, however, there is only little progress in the development of formal computation models that exploit the full power of concurrency inherent in the OOP paradigm. We propose a model of concurrent objects that integrates ideas from three different research areas to cope with what we think is the substance of the object-oriented paradigm.
We study sequential and parallel algorithms on roughly sorted sequences. A sequence α= (a1, a2, . . . , an) is k-sorted if for all 1&lei, j&len, ii&leaj. We first show a real-time algorithm for determinin...
详细信息
We study sequential and parallel algorithms on roughly sorted sequences. A sequence α= (a1, a2, . . . , an) is k-sorted if for all 1&lei, j&len, ii&leaj. We first show a real-time algorithm for determining if a given sequence is k-sorted and an O(n)-time algorithm for finding the smallest k for a given sequence to be k-sorted. Next, we give two sequential algorithms that merge two k-sorted sequences to form a k-sorted sequence and completely sort a k-sorted sequence. Their running times are O(n) and O(n log k), respectively. Finally, parallel versions of the complete-sorting algorithm are presented. Their parallel running times are O(f(2k) log k), where f(t) is the computing time of an algorithm used for finding the median among t elements.
This article discusses some perceived problems with Ada's interrupts. The problem, the author thinks, is that programmers often try to misuse interrupts. A detailed example of misunderstanding of the proper use of...
详细信息
This article discusses some perceived problems with Ada's interrupts. The problem, the author thinks, is that programmers often try to misuse interrupts. A detailed example of misunderstanding of the proper use of tasking and interrupts is given. The best solution is to learn how and when to use interrupts, the author concludes.
Technological advances are making multiprocessors more readily available, but despite impressive progress at the hardware level, it is still difficult to realize these machines' potential for parallelism. In the s...
详细信息
Technological advances are making multiprocessors more readily available, but despite impressive progress at the hardware level, it is still difficult to realize these machines' potential for parallelism. In the sequential domain, 'object-oriented' programming methodologies based on data abstraction are widely recognized as an effective means of enhancing modularity, expressibility, and correctness. Our paper describes the foundations for a new approach to extending object-oriented methodologies to highly-concurrent shared-memory multiprocessors. The basic idea is the following: rather than communicating through low-level machine constructs such as bytes, words, registers, etc., processes communicate through abstract data structures called concurrent objects.
This paper argues that co-routines are related to concurrent processes. By adding interrupt mechanisms languages containing co-routine mechanisms can be used for concurrency. It is also the intention to bring some of ...
详细信息
This paper argues that co-routines are related to concurrent processes. By adding interrupt mechanisms languages containing co-routine mechanisms can be used for concurrency. It is also the intention to bring some of the terminology used in Simula constructs to the attention of others dealing with concurrency in object oriented languages. The use of processes to avoid global states in user interfaces are shortly commented upon.
This paper proposes a challenge to language designers who are interested in concurrency about how to support highly-concurrent data structures. An implementation of a concurrent object is wait-free if it guarantees th...
详细信息
This paper proposes a challenge to language designers who are interested in concurrency about how to support highly-concurrent data structures. An implementation of a concurrent object is wait-free if it guarantees that any process will complete any operation within a fixed number of steps, independent of the level of contention and the execution speeds of the other processes. The paper suggests some research directions that could lead to progress in this area.
In this article the author describes new tools to help build Macintosh user interfaces. He shares his thoughts about all these tools and their relationship to Apple's MacApp object-oriented development environment...
详细信息
In this article the author describes new tools to help build Macintosh user interfaces. He shares his thoughts about all these tools and their relationship to Apple's MacApp object-oriented development environment. Finally, he closes off with some observations about some implications for application designers of the new Finder in the forthcoming System 7.0 software release.
This paper presents Matroshka a model of parallel programming that enables programmers to use several styles of programming within the same simple framework and enables programmers to bind the granularity of paralleli...
详细信息
This paper presents Matroshka a model of parallel programming that enables programmers to use several styles of programming within the same simple framework and enables programmers to bind the granularity of parallelism late in program development. A consequence of the late binding is that programs may be effectively ported among a wide range of multiprocessor architectures. The model is a synthesis of a few concepts and is minimal in that the loss of a single concept severely degrades its expressive power. The model may serve as a base for a wide variety of possible programming languages.
Programmers of sequential and parallel computers share the objective of developing fast, reliable programs as efficiently as possible. Already, considerable effort has been made to develop tools and techniques for seq...
详细信息
Programmers of sequential and parallel computers share the objective of developing fast, reliable programs as efficiently as possible. Already, considerable effort has been made to develop tools and techniques for sequential computers. Several approaches have been devised to meet the parallel programming challenge. We have developed a parallel programming assistant which supports object-based programming. The main motivation for this work was to explore how an assistant can enhance the programmer's understanding of parallel programming. In particular, we wanted to provide the user with parallel programming methods which would be easily integrated with other parts of the life cycle. Moreover, we wanted the programmer to interact with the assistant while writing parallel programs.
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.
暂无评论