Abstract
Programming with assertions constitutes an effective tool to detect and correct programming errors. The ability of executing formal specifications is essential in order to test automatically a program with respect to its assertions. However, formal specifications may describe recursive models which are difficult to identify so current assertion checkers limit, in a considerable way, the expressivity of the assertion language. In this paper, we are interested in showing how transformational synthesis can help to execute “expressive” assertions of the form \(\forall x(r(x)\Leftrightarrow QyR(x,y))\) where x is a set of variables to be instantiated at execution time, Q is an existential or universal quantifier and R a quantifier free formula in the language of a particular first-order theory \(\mathcal{A}\) we call assertion context. The class of assertion contexts is interesting because it presents a balance between expressiveness for writing assertions and existence of effective methods for executing them by means of synthesized (definite) logic programs.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Arts, T., Zantema, H.: Termination of Logic Programs Using Semantic Unification. In: Proietti, M. (ed.) LOPSTR 1995. LNCS, vol. 1048, pp. 219–233. Springer, Heidelberg (1996)
Barnes, J.: High Integrity Ada: The SPARK Approach. Addison-Wesley, Reading (1997)
Bertoni, A., Mauri, G., Miglioli, P.: On the Power of Model Theory in Specifying Abstract Data Types and in capturing their Recursiveness. Fundamenta Informaticae VI(2), 27–170 (1983)
Burstall, R.M., Darlington, J.: A Transformational System for Developing Recursive Programs. Journal of the ACM 24(1), 44–67 (1977)
Bartetzko, D., Fischer, C., Möller, M., Wehrheim, H.: Jass-Java with Assertions. In: 1st Workshop on Runtime Verification, Paris, France. ENTCS. Elsevier, Amsterdam (1999)
Deville, Y.: Logic Programming. Systematic Program Development. Addison Wesley, Reading (1990)
Deville, Y., Lau, K.K.: Logic Program Synthesis. J. Logic Programming 19(20), 321–350 (1994)
Flener, P.: Logic Program Synthesis from Incomplete Information. Kluwer Academic Publishers, Massachusetts (1995)
Flener, P.: Achievements and Prospects of Program Synthesis. In: Kakas, A.C., Sadri, F. (eds.) Computational Logic: Logic Programming and Beyond. LNCS (LNAI), vol. 2407, pp. 310–346. Springer, Heidelberg (2002)
Galán, F.J., Cañete, J.M.: Improving Constructive Synthesizers by Tabulation Techniques and Domain Ordering. In: Warren, D. (ed.) Tabulation and Parsing Deduction, pp. 37–49 (2000)
Galán, F.J., Díaz, V.J., Cañete, J.M.: Towards a Rigorous and Effective Functional Contract for Components. Informatica, An International Journal of Computing and Informatics 25(4), 527–533 (2001)
Galán, F.J., Cañete, J.M.: Compiling and Executing Assertions via Synthesized Logic Programs. Tecnical Report LSI-2004-01. Dept. of Language and Computer Systems. Faculty of Computer Science, Univ. of Seville (2004)
Kramer, R.: iContract-The Java Design by Contract Tool. In: TOOLS 26: Technology of Object-Oriented Languages and Systems, IEEE Computer Society Press, Los Alamitos (1998)
Lau, K., Ornaghi, M.: On Specification Frameworks and Deductive Synthesis of Logic Programs. In: Fribourg, L., Turini, F. (eds.) LOPSTR 1994 and META 1994. LNCS, vol. 883, pp. 104–121. Springer, Heidelberg (1994)
Lau, K., Ornaghi, M.: Towards an Object-Oriented Methodology for Deductive Synthesis of Logic Programs. In: Proietti, M. (ed.) LOPSTR 1995. LNCS, vol. 1048, pp. 152–169. Springer, Heidelberg (1996)
Leavens, G., Baker, A., Ruby, C.: Preliminary Design of JML. TR 98-06u, Dept. of Computer Science, Iowa State Univ., USA (2003)
Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1987)
Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Morillo, F.J.G., Valdeón, J.M.C. (2004). A Method for Compiling and Executing Expressive Assertions. In: Boiten, E.A., Derrick, J., Smith, G. (eds) Integrated Formal Methods. IFM 2004. Lecture Notes in Computer Science, vol 2999. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24756-2_28
Download citation
DOI: https://doi.org/10.1007/978-3-540-24756-2_28
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21377-2
Online ISBN: 978-3-540-24756-2
eBook Packages: Springer Book Archive