Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Dynamic slicing of concurrent specification languages
Llorens M., Oliver J., Silva J., Tamarit S. Parallel Computing53 (C):1-22,2016.Type:Article
Date Reviewed: Aug 4 2016

In approaching a paper, a reviewer has a few questions ready. What is the paper about? How does the method described work? Where is it situated relative to other work? But perhaps the first question to ask is this: Why should I read the paper? Dynamic slicing has the general advantage over static slicing in that it can be more precise: while a static slicer cannot usually predict which branch is taken, a dynamic slicer, necessarily, results in one choice at a branch. So, there is a generic reason for pursuing the work.

In general, justification of a technique comes down to its applicability and usefulness. The authors do not stress this, but do give an example in section 5.3 of the paper where they make a comparison between their technique and static slicing (their references 3 and 20) in a particular example, with a bug inserted: the dynamic slice is indeed more useful in debugging in this case. This gives us some confidence that the technique is of value, at least in a toy example.

As far as the other questions go, we are given a clear picture of what dynamic slicing means to the authors, and how this differs from dynamic slicing for sequential imperative programming languages, for which slicing was first performed. They make the somewhat puzzling claim that performing slicing for a concurrent specification language requires a new definition of “slicing criterion,” while discussing static slicing for the same language in their discussion of related work, and indeed making the comparison between the static and dynamic in section 5.3, as noted earlier.

There is also a clear discussion of how the technique is implemented: this is by means of a translation to Erlang, but it is unfortunate that they don’t discuss the existing work on slicing Erlang (for example [1,2,3]), nor any potential application of the technique to the language.

Finally, there’s a question about precisely how innovative this approach is, fundamentally. The work addresses concurrency, and in particular concurrent specification languages, but there is a restriction to this: in order to have a dynamic slice, there has to be an implementation whose behavior can be tracked, and so the specification must be an “executable specification.” This means that the work covers communicating sequential processes (CSP) and could be extended to, say, the calculus of communicating systems (CCS). On the other hand, many specification languages are by their nature nonexecutable, and so require entirely different mechanisms for an expression of what it means to take a static slice. That remains a challenge for them and others in the field.

Reviewer:  Simon Thompson Review #: CR144660 (1611-0815)
1) Silva, J.; Tamarit, S.; Tomás, C. System dependence graphs in sequential Erlang. In Proc. FASE '12. Springer, 2012, 486–500.
2) Tóth, M.; Bozó, I. Building dependency graph for slicing Erlang programs. Polytech. Elec. Eng. 55, 3-4 (2011), 486–500.
3) Li, H.; Thompson, S. Safe concurrency introduction through slicing. In Proc. PEPM '15. ACM, 2015, 103–113.
Bookmark and Share
  Featured Reviewer  
 
Debugging Aids (D.2.5 ... )
 
 
Program Analysis (F.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Debugging Aids": Date
Automatic correction and improvement of programs
Wertz H., Halsted Press, New York, NY, 1987. Type: Book (9789780470207642)
Dec 1 1987
Application debugging: an MVS ABEND handbook for COBOL, ASSEMBLY, PL/I, and FORTRAN programmers
Binder R., Prentice-Hall, Inc., Upper Saddle River, NJ, 1985. Type: Book (9789780130393487)
Aug 1 1985
A portable high-level database debugger and software performance monitor
Jankowitz H., Kilfoil P., Rabkin I., Schach S. Software--Practice & Experience 15(6): 523-538, 1985. Type: Article
Jun 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy