scispace - formally typeset
Search or ask a question
Topic

Concurrency

About: Concurrency is a research topic. Over the lifetime, 13042 publications have been published within this topic receiving 347118 citations.


Papers
More filters
Journal ArticleDOI
TL;DR: The paper demonstrates, for a sequence of simple languages expressing finite behaviors, that in each case observation congruence can be axiomatized algebraically and the algebraic language described here becomes a calculus for writing and specifying concurrent programs and for proving their properties.
Abstract: Since a nondeterministic and concurrent program may, in general, communicate repeatedly with its environment, its meaning cannot be presented naturally as an input/output function (as is often done in the denotational approach to semantics). In this paper, an alternative is put forth. First, a definition is given of what it is for two programs or program parts to be equivalent for all observers; then two program parts are said to be observation congruent if they are, in all program contexts, equivalent. The behavior of a program part, that is, its meaning, is defined to be its observation congruence class.The paper demonstrates, for a sequence of simple languages expressing finite (terminating) behaviors, that in each case observation congruence can be axiomatized algebraically. Moreover, with the addition of recursion and another simple extension, the algebraic language described here becomes a calculus for writing and specifying concurrent programs and for proving their properties.

1,486 citations

Journal ArticleDOI
TL;DR: Maude as discussed by the authors is a programming language whose modules are rewriting logic theories, which is defined and given denotational and operational semantics, and it provides a simple unification of concurrent programming with functional and object-oriented programming and supports high level declarative programming of concurrent systems.

1,345 citations

Journal Article
TL;DR: A program slice consists of the parts of a program that (potentially) affect the values computed at some point of interest, referred to as a slicing criterion, and is typically specified by a location in the program in combination with a subset of the program's variables.
Abstract: A program slice consists of the parts of a program that (potentially) affect the values computed at some point of interest. Such a point of interest is referred to as a slicing criterion, and is typically specified by a location in the program in combination with a subset of the program’s variables. The task of computing program slices is called program slicing. The original definition of a program slice was presented by Weiser in 1979. Since then, various slightly different notions of program slices have been proposed, as well as a number of methods to compute them. An important distinction is that between a static and a dynamic slice. Static slices are computed without making assumptions regarding a program’s input, whereas the computation of dynamic slices relies on a specific test case. This survey presents an overview of program slicing, including the various general approaches used to compute slices, as well as the specific techniques used to address a variety of language features such as procedures, unstructured control flow, composite data types and pointers, and concurrency. Static and dynamic slicing methods for each of these features are compared and classified in terms of their accuracy and efficiency. Moreover, the possibilities for combining solutions for different features are investigated. Recent work on the use of compiler-optimization and symbolic execution techniques for obtaining more accurate slices is discussed. The paper concludes with an overview of the applications of program slicing, which include debugging, program integration, dataflow testing, and software maintenance.

1,314 citations

Book
01 Jan 1990
TL;DR: This second edition features substantial restructuring of earlier material, streamlining the introduction of programming language features; simplified presentation of procedures, parameters and recursion; an expanded chapter on data refinement, giving the much simpler laws that specialize to functional abstractions.
Abstract: Providing a thorough treatment of most elementary programme development techniques, this revised edition covers topics such as procedures, parameters, recursion and data refinement, with the integration of specification, development and coding, based on ordinary (classical) logic. This second edition features: substantial restructuring of earlier material, streamlining the introduction of programming language features; simplified presentation of procedures, parameters and recursion; an expanded chapter on data refinement, giving the much simpler laws that specialize to functional abstractions; a new chapter on recursive types (trees etc) and appropriate control structures; and, following the original concluding case study, two completely new ones: "the recursive treatment of the largest rectangle under a histogram", and a specification and extended developnent of an electronic mail system (including limited concurrency).

1,211 citations

Book
27 Jul 2001
TL;DR: This book describes and implements a new family of high-level programming languages suitable for writing control programs for dynamical systems, based on the situation calculus, a dialect of first-order logic.
Abstract: Modeling and implementing dynamical systems is a central problem in artificial intelligence, robotics, software agents, simulation, decision and control theory, and many other disciplines. In recent years, a new approach to representing such systems, grounded in mathematical logic, has been developed within the AI knowledge-representation community. This book presents a comprehensive treatment of these ideas, basing its theoretical and implementation foundations on the situation calculus, a dialect of first-order logic. Within this framework, it develops many features of dynamical systems modeling, including time, processes, concurrency, exogenous events, reactivity, sensing and knowledge, probabilistic uncertainty, and decision theory. It also describes and implements a new family of high-level programming languages suitable for writing control programs for dynamical systems. Finally, it includes situation calculus specifications for a wide range of examples drawn from cognitive robotics, planning, simulation, databases, and decision theory, together with all the implementation code for these examples. This code is available on the book's Web site.

1,199 citations


Network Information
Related Topics (5)
Compiler
26.3K papers, 578.5K citations
91% related
Data structure
28.1K papers, 608.6K citations
91% related
Distributed algorithm
20.4K papers, 548.1K citations
87% related
Graph (abstract data type)
69.9K papers, 1.2M citations
87% related
Scalability
50.9K papers, 931.6K citations
87% related
Performance
Metrics
No. of papers in the topic in previous years
YearPapers
2023172
2022381
2021311
2020317
2019458
2018420