We examine the design space for object-based concurrent programming, emphasizing high-level design alternatives in the areas of process structure, internal process concurrency, synchronization, and inter-process communication. We consider the role of abstraction, distribution, and synchronization in determining the granularity of modules, and introduce the notion of“relative persistence” of operations and data for functions, objects, and transactions. Our primary goal is to present design alternatives rather than to draw strong conclusions about how concurrent object-oriented systems should be designed. This work derives from [15] and complements work on fundamental models of concurrency such as [1, 4, 12, 17].
Journal Article Towards Empirical Computer Science Get access Peter Wegner Peter Wegner Department of Computer Science Brown University Providence, Rhode Island Search for other works by this author on: Oxford Academic PubMed Google Scholar The Monist, Volume 82, Issue 1, 1 January 1999, Pages 58–108, https://doi.org/10.5840/monist19998216 Published: 16 December 2014
Computing Surveys is commemorating the 50th anniversary of the ACM and of the computing discipline in two special issues. The March 1996 issue, on “Perspectives in Computer Science,” examined the status of the discipline, while the present issue looks to the future with a collection of reports on “Strategic Directions in Computing Research.” These reports evolved from a workshop, hosted by the MIT Laboratory for Computer Science in June 1996, at which 22 working groups consisting of more than 300 participants met to examine research directions. The preparation of reports in the subsequent months proved more time-consuming than expected, but 19 of the working groups completed their reports for publication in this issue. The reports collectively provide a remarkably deep, though incomplete, view of the field and its future challenges. We hope they will stimulate further efforts toward strategic understanding, and we offer the pages of Computing Surveys as a home for future strategic-directions reports. The September or December 1997 Surveys will contain a symposium on strategic directions in computing research that reacts to the articles in this issue. Readers interested in submitting short (1000-word) articles to such a symposium should so inform the editors ^csur@acm.org or pw@cs.brown.edu&. Over the past 30 years computers have become an increasingly important part of everyday life. The success of computer technology has inevitably altered the role of core research. The ACM has changed from a small society representing researchers to a large professional organization in which researchers comprise less than 20% of its members. The Communications of the ACM has changed its format from a scholarly journal to a magazine, while Computing Surveys, though preserving its scholarly character, is also changing to better serve the changed membership profile. The evolving role of computing in society affects the self-image of researchers as well as the research philosophies of funding agencies and governments. The report Computing the Future [Hartmanis and Lin 1992], which recognized the changing role of research in the discipline of computing, recommended balancing its first priority—sustaining core research—with an effort by researchers to broaden the field, so as to play a greater role in an expanding discipline and to enrich computing models through contact with applications. These recommendations engendered some controversy because they struck some researchers as favoring short-term over long-term research. Such fears of overemphasis on short-term results at the expense of long-term research are legitimate and need to be addressed. The reports in this issue balance the desire of researchers to undertake core research with the need to build bridges connecting theory and practice. The tension between supply-driven core research—focused on increasing understanding and exploring new possibilities—and demand-driven applications research—focused on solving external problems—is a permanent part of the strategic landscape. We hope that these reports help the computing community better to appreciate the scope and importance of research.
Object-oriented and logic-programming paradigms are shown to be incompatible as component-based models of computation. This impossibility result, based on a new notion of observability of interactions among components, suggests that combining object-oriented with logic programming is not merely hard but impossible. It implies the more general incompatibility of reasoning and modeling and the impossibility of reducing modeling to reasoning as in automatic program verification. While paradigmatic incompatibility is the most startling result, the novel use of models and metrics is of independent interest. A notion of software complexity with parallels to computational complexity, and a notion of LP-completeness that parallels NP-completeness are introduced.< >
4. What research and development questions must be addressed to scale up from objectoriented programming to megaprogramming? The term “megaprogramming” was introduced by DARPA in 1990 to motivate the scaling up of software technology to very large systems of heterogeneous , distributed software components. The panelists will strive to make this term concrete, presenting complementary perspectives on different aspects of megaprogramming.
Each section of this four-part article deals with a different aspect of capital-intensive software technology. Together, they present an integrated view of the subject.
Three notations for concurrent programming are compared, namely CSP, Ada, and monitors. CSP is an experimental language for exploring structuring concepts in concurrent programming. Ada is a general-purpose language with concurrent programming facilities. Monitors are a construct for managing access by concurrent processes to shared resources. We start by comparing "lower-level" communication, synchronization, and nondeterminism in CSP and Ada and then examine "higher-level" module interface properties of Ada tasks and monitors.