Information Processing Letters
Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
Descendants and origins in term rewriting
Information and Computation - Special issue on RTA-98
The value of slicing while debugging
Science of Computer Programming - Special issue on program comprehension (IWPC '99)
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic Dependence in Term rewriting Systems and its Application to Program Slicing
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Breaking and Fixing the Needham-Schroeder Public-Key Protocol Using FDR
TACAs '96 Proceedings of the Second International Workshop on Tools and Algorithms for Construction and Analysis of Systems
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
Eliminating dead code on recursive data
Science of Computer Programming - Special issue on static analysis (SAS'99)
ICSE '81 Proceedings of the 5th international conference on Software engineering
Reverse Program Calculation Supported by Code Slicing
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Semantic foundations for generalized rewrite theories
Theoretical Computer Science
The Temporal Logic of Rewriting: A Gentle Introduction
Concurrency, Graphs and Models
Parametric Trace Slicing and Monitoring
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Maude-NPA: Cryptographic Protocol Analysis Modulo Equational Properties
Foundations of Security Analysis and Design V
Quantitative Pathway Logic for Computational Biology
CMSB '09 Proceedings of the 7th International Conference on Computational Methods in Systems Biology
Specification and Verification of Web Applications in Rewriting Logic
FM '09 Proceedings of the 2nd World Congress on Formal Methods
SFM'08 Proceedings of the Formal methods for the design of computer, communication, and software systems 8th international conference on Formal methods for computational systems biology
All about maude - a high-performance logical framework: how to specify, program and verify systems in rewriting logic
Model-checking web applications with web-TLR
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
A Maude coherence checker tool for conditional order-sorted rewrite theories
WRLA'10 Proceedings of the 8th international conference on Rewriting logic and its applications
A complete declarative debugger for Maude
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
Backward trace slicing for rewriting logic theories
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Backward trace slicing for conditional rewrite theories
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Slicing-Based trace analysis of rewriting logic specifications with JULIENNE
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
A rewriting logic approach to the formal specification and verification of web applications
Science of Computer Programming
Hi-index | 0.00 |
Understanding the behavior of software is important for the existing software to be improved. In this paper, we present a trace slicing technique that is suitable for analyzing complex, textually-large computations in rewriting logic, which is a general framework efficiently implemented in the Maude language that seamlessly unifies a wide variety of logics and models of concurrency. Given a Maude execution trace T and a slicing criterion for the trace (i.e., a piece of information that we want to observe in the final computation state), we traverse T from back to front and the backward dependence of the observed information is incrementally computed at each execution step. At the end of the traversal, a simplified trace slice is obtained by filtering out all the irrelevant data that do not impact on the data of interest. By narrowing the size of the trace, the slicing technique favors better inspection and debugging activities since most tedious and irrelevant inspections that are routinely performed during diagnosis and bug localization can be eliminated automatically. Moreover, cutting down the execution trace can expose opportunities for further improvement, which we illustrate by means of several examples that we execute by using iJulienne, a trace slicer that implements our conditional slicing technique and is endowed with a trace querying mechanism that increases flexibility and reduction power.