Next Article in Journal
Augmented Reality in Industry 4.0 Assistance and Training Areas: A Systematic Literature Review and Bibliometric Analysis
Next Article in Special Issue
Exploring the Potential of Pre-Trained Language Models of Code for Automated Program Repair
Previous Article in Journal
Noncontact Automatic Water-Level Assessment and Prediction in an Urban Water Stream Channel of a Volcanic Island Using Deep Learning
Previous Article in Special Issue
Modeling and Analyzing Reaction Systems in Maude
 
 
Article
Peer-Review Record

Reducing the Length of Dynamic and Relevant Slices by Pruning Boolean Expressions

Electronics 2024, 13(6), 1146; https://doi.org/10.3390/electronics13061146
by Thomas Hirsch and Birgit Hofer *,†
Reviewer 1: Anonymous
Reviewer 2: Anonymous
Reviewer 3: Anonymous
Electronics 2024, 13(6), 1146; https://doi.org/10.3390/electronics13061146
Submission received: 15 February 2024 / Revised: 13 March 2024 / Accepted: 17 March 2024 / Published: 20 March 2024
(This article belongs to the Special Issue Program Slicing and Source Code Analysis: Methods and Applications)

Round 1

Reviewer 1 Report

Comments and Suggestions for Authors

This paper presents a program slicing optimization, called pruned slicing, that allows program slices to be computed by analyzing the Boolean expressions they contain. More specifically, pruned slicing adds, to the program slice, only those parts of a Boolean expression that contribute to its evaluation, thereby removing subexpressions that do not affect the overall outcome. The optimization has been applied to dynamic as well as relevant slicing algorithms and a prototype, which works on a subset of the Python language, has been implemented.  An experimental evaluation of the proposed technique has been conducted on three benchmark sets that contain rather small and simple programs.

The paper is fairly interesting and reads quite well. However, I have some concerns that the authors should address and/or clarify.

- This paper builds on a previous work by the same authors (see [11]). Although the introduction includes a paragraph that highlights the main differences between the two papers, I found it rather poor. Actually, it is not clear what is new w.r.t. [11]. The authors should extend this part and better clarify the novel contributions of the current work. 

- Section 5 presents some relations between slicing algorithms. This is fine, however the results are just stated but not proved. Also inclusions 3,4,5 (page 12) relate dynamic and relevant slicing to static slicing, which has not been formalized. Please, either prove the results formally or point to some work that proves them.

- The description of the slicing implementation (section 6.1) is too concise. This should be the core part of this paper and must be improved by providing more technical details. In particular, I'd like to see an in-depth description of the code instrumentation that is required to run the slicer.

- There are quite a few typos and English mistakes. A careful proof-reading is definitely required. A non-comprehensive list of typos is given in the detailed comments below.

Detailed comments:

p4. We refer the interested reader Tip's survey -> We refer the interested reader to Tip's survey

p6. (Example 3.2) valid slicing criterion -> when is a slicing criterion valid? Please, define this notion if you need it.

p6. (Definition 3.4) valid and executable program -> please, define what a valid program is.

p6. and well as -> as well as

p7. While the slice {1,2,3,4,5,6,8} -> While the slice {1,2,3,4,5,6,9}

p8. Analog -> Analogously

p9 (Example 3.5) The chosen slicing criterion is not a slicing criterion according to Definition 3.3, since Line 10 is not the last definition of the observed variable l.  This also happens in Example 3.7 and Example 5.1. Please, fix it.

p11. there a multiple -> there are multiple

p13. We utilized the three benchmarks (TCAS, Refactory, QuixBugs) -> We utilized the three benchmarks TCAS, Refactory, and QuixBugs

p13. The slicing criterion consists of a line number and a variable -> This is not the definition of slicing criterion you gave. Indeed, Definition 3.3 defines a slicing criterion as a triple. Please, fix it.

p13. In Figure 5, the line number seems to be an outcome of the tracer module. Is it correct? Shouldn't the line number be an input provided by the user? Also, could you please explain what a configuration is? 

p14. Augmentation of the original program is successful -> what is code augmentation in your setting? Please, clarify.

p14. The adherence to the slice length relationships derived form Equations 1,2,6, and 7.  -> This is unclear. 1,2,6, and 7 are just set inclusion relations that do not state anything about slice lengths. Please, clarify.

p14. Slice length relationships derived in Section 5 are adhered. -> Unclear. Please, clarify.

p15. . production-grade programs -> . Production-grade programs

p15. which use these commonly -> which exploit these commonly

p15. to what extend -> to what extent

p16. (Section 7.4) Please, clarify if you considered new benchmarks w.r.t. your previous work [11]. Does the current evaluation bring something new w.r.t. [11]? If this is the case, please pinpoint the novel contribution.

p18. In Table 4 you compared relevant slicing and dynamic slicing with short circuit evaluation. It would be fairer to compare either relevant slicing with dynamic slicing or relevant slicing (with short circuit eval) with dynamic slicing (with short circuit eval). Motivate your choice or provide a new comparison.

p23. We have not investigated the overhead that is produced for relevant and pruned slicing in the tracing part. -> I do believe this information is fundamental and should appear in your analysis. Relevant and pruned slicing might take a non-negligible time to construct the execution trace. Please, provide this info.

p23. The execution time required for tracing the executed statements magnitudes larger... of the programs. -> Unclear sentence. Please, rewrite.  

Comments on the Quality of English Language

There are quite a few typos and English mistakes. A careful proof-reading is definitely required. 

Author Response

Please see the attachment.

Author Response File: Author Response.pdf

Reviewer 2 Report

Comments and Suggestions for Authors

The manuscript covers an interesting R&D topic and fits the scope of the Journal. However, extra effort is required to improve the content and presentation of the document. A set of comments are expounded hereafter:

1.       Regarding affiliation, both authors have indicated the same. Therefore, the applied superscript (1),(2) must be corrected, using only a single superscript (1) to avoid unnecessary duplication.

2.       In the Abstract section, the acronym TCAS is used without being previously defined. The acronym must be defined when it is used for the first time in the manuscript.

3.       The reviewer recommends conducting an overall review of the language used in the manuscript, avoiding the use of informal language (such as the use of pronouns) and employing formal and impersonal language.

4.       As indicated on page 3, lines 82-84, this paper is a continuation of a work presented at a conference. Regarding the titles of both works (this present paper and the one presented at the conference), both have almost identical titles (except for the word 'Relevant'). Therefore, and to differentiate between the two works, the reviewer recommends substantially modifying the manuscript's title in a way that clearly distinguishes it from the previous work presented at the conference while accurately describing the content of the manuscript.

5.       Include a period at the end of Figure 5.

6.       Regarding the references, two types of formats are used throughout the manuscript: square brackets [] or footnotes (in superscript format). The latter format is mainly used for referencing websites. To standardize the reference format, the references in 'superscript' format should be modified, and only the square bracket format should be used. This adjustment aligns with the guidelines outlined in the Journal's author guide.

Author Response

Please see the attachment.

Author Response File: Author Response.pdf

Reviewer 3 Report

Comments and Suggestions for Authors

The authors propose an extension of dynamic and correlated slices called pruning slices, and this work is of great interest. Pruning slices reduce the size of dynamic and correlated slices by reasoning about the results of the calculation of Boolean subex expressions and their contribution to the final result of nested Boolean expressions. A few suggestions are provided for reference only.

1. In the part of the introduction, the author should emphasize the innovation of the work in this paper and the extent to which the proposed algorithm has advantages compared with the current mainstream algorithms. For example, calculating the same task, how much can the algorithm in this paper achieve in terms of the effect and degree of resource saving specifically, just explaining how much code the program reduces with the new algorithm can not explain the final effect. Please consider providing a specific comparison.

2. Is it necessary to include so many detailed program example in the paper? Which looks like a book. Is it better to express the programming ideas using flow charts? 

3. The logical structure layout of the article is not much like a journal paper, more like the layout of popular science books or graduation papers, relatively loose, consider changing to the compact layout logic of journal papers.

In general, the content of the article is sufficient, but rather redundant.  The author can optimize the article to make the overall logic tighter and more compact.

Comments on the Quality of English Language

Language is good enough.

Author Response

Please see the attachment.

Author Response File: Author Response.pdf

Back to TopTop