Hostname: page-component-cd9895bd7-7cvxr Total loading time: 0 Render date: 2024-12-17T02:22:01.240Z Has data issue: false hasContentIssue false

Assertion-based analysis via slicing with ABETS* (system description)

Published online by Cambridge University Press:  14 October 2016

M. ALPUENTE
Affiliation:
Universitat Politècnica de València, Departamento de Sistemas Informáticos y Computación, Camino de Vera, s/n, 46022 Valencia (Spain) (e-mails: [email protected], [email protected], [email protected])
F. FRECHINA
Affiliation:
Universitat Politècnica de València, Departamento de Sistemas Informáticos y Computación, Camino de Vera, s/n, 46022 Valencia (Spain) (e-mails: [email protected], [email protected], [email protected])
J. SAPIÑA
Affiliation:
Universitat Politècnica de València, Departamento de Sistemas Informáticos y Computación, Camino de Vera, s/n, 46022 Valencia (Spain) (e-mails: [email protected], [email protected], [email protected])
D. BALLIS
Affiliation:
Università degli Studi di Udine, Dipartimento di Matematica e Informatica, Via delle Scienze, 206, 33100 Udine (Italy) (e-mail: [email protected])

Abstract

We present ABETS, an assertion-based, dynamic analyzer that helps diagnose errors in Maude programs. ABETS uses slicing to automatically create reduced versions of both a run's execution trace and executed program, reduced versions in which any information that is not relevant to the bug currently being diagnosed is removed. In addition, ABETS employs runtime assertion checking to automate the identification of bugs so that whenever an assertion is violated, the system automatically infers accurate slicing criteria from the failure. We summarize the main services provided by ABETS, which also include a novel assertion-based facility for program repair that generates suitable program fixes when a state invariant is violated. Finally, we provide an experimental evaluation that shows the performance and effectiveness of the system.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2016 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Footnotes

*

This work has been partially supported by the EU (FEDER) and Spanish MINECO grant TIN2015-69175-C4-1-R, and by Generalitat Valenciana PROMETEOII/2015/013. J. Sapiña was supported by FPI-UPV grant SP2013-0083.

References

Alpuente, M., Ballis, D., Frechina, F. and Romero, D. 2014. Using conditional trace slicing for improving Maude programs. Science of Computer Programming 80, Part B, 385–415.Google Scholar
Alpuente, M., Ballis, D., Frechina, F. and Sapiña, J. 2015. Exploring conditional rewriting logic computations. Journal of Symbolic Computation 69, 339.Google Scholar
Alpuente, M., Ballis, D., Frechina, F. and Sapiña, J. 2016. Debugging Maude programs via runtime assertion checking and trace slicing. Journal of Logical and Algebraic Methods in Programmig 85, Issue 5, Part 1, 707–736.Google Scholar
Alpuente, M., Escobar, S., Espert, J. and Meseguer, J. 2014. A modular order-sorted equational generalization algorithm. Information and Computation 235, 98136.Google Scholar
Antoy, S. and Hanus, M. 2012. Contracts and specifications for functional logic programming. In Proc. of the 14th Int'l Symposium on Practical Aspects of Declarative Languages (PADL 2012). Lecture Notes in Computer Science, vol. 7149. Springer-Verlag, 3347.Google Scholar
Chitil, O. 2011. A semantics for lazy assertions. In Proc. of the 20th ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM 2011). Association for Computing Machinery, 141–150.Google Scholar
Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J. and Talcott, C. 2007. All About Maude: A High-Performance Logical Framework. Springer-Verlag.Google Scholar
Durán, F., Eker, S., Escobar, S., Martí-Oliet, N., Meseguer, J. and Talcott, C. 2016. Built-in variant generation and unification, and their applications in Maude 2.7. In Proc. of the 8th International Joint Conference on Automated Reasoning (IJCAR 2016). Lecture Notes in Computer Science, vol. 9706. Springer-Verlag, 183192.Google Scholar
Durán, F., Roldán, M., Moreno-Delgado, A. and Álvarez, J. M. 2014. Dynamic validation of Maude prototypes of UML models. In Specification, Algebra, and Software - Essays Dedicated to Kokichi Futatsugi (SAS 2014), Iida, S., Meseguer, J. and Ogata, K., Eds., Lecture Notes in Computer Science, vol. 8373. Springer-Verlag, 212228.Google Scholar
Field, J. and Tip, F. 1994. Dynamic dependence in term rewriting systems and its application to program slicing. In Proc. of the 6th Int'l Symp. on Programming Language Implementation and Logic Programming (PLILP 1994). Lecture Notes in Computer Science, vol. 844. Springer-Verlag, 415431.CrossRefGoogle Scholar
Logozzo, F. and Ball, T. 2012. Modular and verified automatic program repair. In Proc. of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2012). Association for Computing Machinery, 133–146.Google Scholar
Mera, E., López-García, P. and Hermenegildo, M. V. 2009. Integrating software testing and run-time checking in an assertion verification framework. In Proc. of the 25th Int'l Conference on Logic Programming (ICLP 2009). Lecture Notes in Computer Science, vol. 5649. Springer-Verlag, 281295.Google Scholar
Meseguer, J. 1992. Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96, 1, 73155.Google Scholar
Roşu, G. 2015. From rewriting logic, to programming language Semantics, to program verification. In Logic, Rewriting, and Concurrency - Festschrift Symposium in Honor of José Meseguer, Martí-Oliet, N., Csaba Ölveczky, P. and Talcott, C. L., Eds., Lecture Notes in Computer Science, vol. 9200. Springer-Verlag, 598616.Google Scholar