| R. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26:362--376, 1983. |
....model checking algorithms to analyze this abstract model, and then (3) mapping abstract counter examples back to the code. The investigation of this approach can be traced back to early attempts to analyze concurrent programs written in concurrent programming languages such as Ada (e.g. [30, 26, 27, 9]) Other relevant work includes static analyses geared towards analyzing communication patterns in concurrent programs (e.g. 8, 11, 31] Recently, several efforts have started aiming at providing model checking tools based on source code abstraction for mainstream popular programming languages ....
R. N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, pages 362--376, May 1983.
....treated theoretically in [18] Explicitly parallel programs are restricted to a (cobegin . coend) like structure and are in strict contrast to the tasking in Ada. The semantic chosen for global variables is far too weak to model Ada programs with tasks. Static Concurrency Analysis, presented in [19], is a method for determining concurrency errors in parallel programs. The class of detectable errors include infinite waits, deadlocks, and concurrent updates of shared variables. Infeasible Paths, however, represent a problem since they give rise to errors which actually cannot occur. In [20] ....
R.N. Taylor, A general-purpose algorithm for analyzing concurrent programs, Communications of the ACM 26 (1983), no. 5, 362-376.
....usually over the values of attributes of the object modelled by the SM, if indeed the SM models the behaviour of an object. Since we have not considered objects and attributes we have omitted guards as well. This implies that our analysis is of the so called static type, as discussed in [17]. ....
R. Taylor. A general purpose algorithm for analyzing concurrent programs. Communication of ACM, (26), May 1983.
....may refer to the same shared variable. Static techniques conservatively report dependences that include all potential data races that could occur during parallel execution. Strategies range from those that consider loop parallelism [1, 4] to those that consider more general tasking models [3, 14]. The conservative nature of static techniques, however, often leads to reports of data races that could never occur during execution. Experience with static analysis tools has shown that the number of false positives reported using these techniques is too high for programmers to rely exclusively ....
R. N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362--376, May 1983.
....to be grouped together. In most cases this is possible; in Section 2 we will review two classic approaches to the problem of reducing the set of states of product machines. One is the concept of concurrency states developed by Taylor for the purpose of static concurrency analysis of Ada programs [11], and another is the concept of execution sequences involving external (communication) actions developed by Lynch and Fischer for the purpose of describing the behavior of distributed systems [7] In Section 3 we propose an alternative approach to modelling parallel program paths, based on ....
....other are forbidden in the system. Typically, the more complex interprocess communication patterns, the stronger is the ordering of various configurations along the paths of interest. This leads to the sort of serialized view of parallelism, providing a basis for a number of testing approaches [9,10,11]. Executing parallel program paths has some additional problems not present in sequential programs. For a sequential program path that is executable there is a set of data that force the program predicates along a selected path to the values that guarantee this path execution. Once the set is ....
[Article contains additional citation context not shown here]
Taylor, R.N.: A general purpose algorithm for analyzing concurrent programs. Comm. ACM 26, 362-376 (1983).
....code. We use 13 define environment conditions generate test data by static analysis execute tests check on behaviour debugger scenario user GUI start test coverage all scenarios end N N Y Y Figure 11: A generic testing procedure 14 the generalized Taylor s algorithm [11] for static concurrency analysis and the modified Laski s algorithm [8] for data flow analysis in order to identify matching communication statements constituting particular communication nodes. The functional structure of our Structural TEsting tool for Parallel Systems (STEPS) under development ....
Taylor, R.N.: A general purpose algorithm for analyzing concurrent programs. Comm. ACM 26, 362-376 (1983).
....performed on the model can determine points of possible synchronization, identify actions occurring in parallel, detect inherent synchronization errors, analyze paths and evaluate conditions controlling their executions. Algorithms one may 1 apply to the model include static concurrency analysis [22], path finding [21] and symbolic interpretation [9] ffl Finite state machines . Ordering of actions in the model is described by simple automata in a quite standard way, based on the classic notion of a global system state [13] We have eliminated the problem of state explosion by utilizing the ....
....destructors may handle dynamic creation and killing of processes [11] In this paper we focus only on this model s application to re engineering existing source code. In our application problem related to the PVM platform [23] we use the standard Taylor s algorithm for static concurrency analysis [22]; it uses tokens to represent control flows in each component process. Tokens advance through analyzed programs and are used to identify matching communication statements. These statements are grouped, their respective protocol machines identified in the supporting library of objects, and ....
Taylor, R.N.: A general purpose algorithm for analyzing concurrent programs. Comm. ACM 26, 362-376 (1983).
....involve the inspection of each state of a process to guarantee that a deadlock will never happen. Since a configuration may involve several processes with many states, the number of states of the configuration to be inspected may grow exponentially, making the analysis impractical in many cases [CML82, Tay83, JV89]. In a configuration oriented approach to deadlock analysis, we only check the topology and the template types to verify if a deadlock exists, as a template type specifies the communication patterns, and the configuration identifies the dependencies between the processes [JW91] The main ....
R. N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of ACM, 26(5):362--376, May 1983.
....safe Petri net. Using Petri net specific reductions, the net is simplified into one with a fewer number of states while preserving any deadlock information. The sequences of transitions that lead to deadlocks in the original CCS program, can be uncovered from the reduced net. Related work Taylor [30] proposes an algorithm that addresses several problems related to the analysis of Ada programs. The detection of deadlock situations is performed using a state enumeration approach. More recent work [27, 20, 32, 33, 25] is based on the representation of the concurrent program (e.g. Ada) by a ....
R. N. Taylor, A general-purpose algorithm for analyzing concurrent programs, Communications of the ACM, 26(5) (1983) 362-376.
.... program holds the lock whenever it accesses the corresponding data [94, 28] Other analyses trace the control transfers associated with the use of synchronization constructs such as the post and wait constructs used in parallel dialects of Fortran [71, 18, 36, 17] the Ada rendezvous constructs [95, 99, 33, 70, 35], or the Java wait and notify constructs [73, 74] The goal is to determine that the synchronization actions temporally separate conflicting accesses to shared data. In some cases it may be important to recognize that parallel tasks access disjoint regions of the same data structure. Researchers ....
....solution for most programs will involve an augmented type system that eliminates the possibility of data races at the language level. 2. 3 Deadlock Detection Researchers have developed a variety of analyses for detecting potential deadlocks in Ada programs which use rendezvous synchronization [95, 99, 69, 29, 66, 34, 24, 16, 12]. A rendezvous takes place between a call statement in one thread and an accept statement in another. The analyses match corresponding calls and accepts to determine if every call will eventually participate in a rendezvous. If not, the program is considered to deadlock. We note that deadlock ....
[Article contains additional citation context not shown here]
R. N. Taylor. A general purpose algorithm for analyzing concurrent programs. Commun. ACM, 26(5):362--376, May 1983.
....Graph Control Flow Graphs c Fig. 1. Traditional reachability graph generation I. INTRODUCTION R EACHABILITY analysis is an important and well known tool for static analysis of concurrent programs and involves the systematic enumeration of all possible global states of program execution ( [6], 5] The control flow graphs of individual processes are modified to highlight the synchronization structure, abstracting away other details. The complete state transition graph or the reachability graph is then constructed, thereby modeling the concurrent program as the set of all possible ....
R. N. Taylor. A general purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362--376, May 1983.
....techniques (e.g. CC77, MJ81, ASU86] automatically extract information about the dynamic behavior of a sequential program by examining its text. Variants of these techniques have also been proposed for the analysis of programs written in concurrent programming languages such as Ada (e.g. Tay83, LC91, MR93, Cor96] For specific classes of concurrent programs, these abstraction techniques can produce a conservative model of the system that preserves basic information about the communication patterns that can take place in the system. Analyzing such a model using standard ....
R. N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, pages 362--376, May 1983.
....Model checking techniques can also be applied to verify application specific properties using the reachability graph. Model checking will be discussed in Section 2.2.3. Figure 2.1 illustrates the general approach. Reachability analysis can be applied to models like Petri nets, CCS, or CSP [Apt83, Tay83b, Pet81, MR87] Reachability analysis is attractive because it is simple and relatively straightforward to automate. It has been used successfully in limited domains like simple communication protocols [Sun81] However, practical application to real systems has been stymied by the state explosion ....
....processes. The composite state transition model is often called a reachability graph. These models highlight synchronization structure and abstract away other details of execution. Reachability analysis has been applied to Petri nets, and CSP like state machine models, among others [Apt83, Tay83b, Pet81, MR87] A primary use of reachability analysis is verification of properties of synchronization structures of concurrent software, e.g. freedom from deadlock, freedom from starvation, and freedom from dangerous parallelism. Reachability analysis techniques can also be combined with ....
[Article contains additional citation context not shown here]
Richard N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362--376, May 1983.
....be modeled with PNs, and how Petri net models can be automatically translated into the language versions. For example, De Cindio and Botti [De Cindio91] investigate the equivalence between PNs and concurrent languages like CSP and CCS (Occam2 actually uses CSP models [Hoare85] Instead, Taylor [Taylor83] and Shatz and Cheng [Shatz87] consider Ada. Taylor proposes a static analyzer for Ada programs. It inputs the program code and outputs the program call graph. Balbo et al. Balbo92a] report part of a project for the development of a Petri net based programming environment for the DISC ....
Taylor, R., "A general purpose algorithm for analyzing concurrent programs," Communications of the ACM, vol. 26, May 1983.
....area of the techniques presented in this paper is the analysis and veri cation of programs for safety critical embedded systems. It is generally felt that direct analysis of programs is infeasible because of the state space explosion problem. For example the work on static analysis of ADA [19] aims at abstracting away details of the program so that reachability graph generation becomes feasible. However we feel that recent advances in new analysis techniques, like the stubborn set method [20] as 1 Channels are not described in this paper. 1 implemented in PROD [12] or the ....
R. N. Taylor. A general purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362376, 1983.
.... Another technique is reachability analysis, which restricts queries to specific properties (such as deadlock) In this approach, the analysis algorithm takes a finitestate abstraction of the program, and then checks the states to determine whether they conform to the property at hand (e.g. see [16, 17, 13, 15, 11]) Some of these methods are pessimistic; for example, they may report deadlock when none exists. On the other hand, they present tractable alternatives to the methods based on proof systems. A third technique is that of model checking [7] As with reachability analysis, a graph abstraction of ....
R. N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362--376, May 1983.
No context found.
R. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26:362--376, 1983.
No context found.
R. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, volume 26, 1983. 31
No context found.
R. Taylor. A general purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362--376, May 1983.
No context found.
R. Taylor. A general purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26(5):362--376, May 1983.
No context found.
R. N. Taylor. A general purpose algorithm for analyzing concurrent programs. Commun. ACM, 26(5):362--376, May 1983.
No context found.
R. N. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, pages 362--376, May 1983.
No context found.
R. Taylor. A general-purpose algorithm for analyzing concurrent programs. Communications of the ACM, 26:362--376, 1983.
No context found.
R. N. Taylor, `A general-purpose algorithm for analyzing concurrent systems', Commun. ACM, 26, (5), 362--376 (1983).
No context found.
R.N. Taylor, "A General-Purpose Algorithm for Analyzing Concurrent Programs", Communications of the ACM, 26(5) pp 362-376, 1983.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC