Skip to main content

A Method for Compiling and Executing Expressive Assertions

  • Conference paper
  • 408 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2999))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Barnes, J.: High Integrity Ada: The SPARK Approach. Addison-Wesley, Reading (1997)

    MATH  Google Scholar 

  3. 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)

    MathSciNet  Google Scholar 

  4. Burstall, R.M., Darlington, J.: A Transformational System for Developing Recursive Programs. Journal of the ACM 24(1), 44–67 (1977)

    Article  MATH  MathSciNet  Google Scholar 

  5. 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)

    Google Scholar 

  6. Deville, Y.: Logic Programming. Systematic Program Development. Addison Wesley, Reading (1990)

    Google Scholar 

  7. Deville, Y., Lau, K.K.: Logic Program Synthesis. J. Logic Programming 19(20), 321–350 (1994)

    Article  MathSciNet  Google Scholar 

  8. Flener, P.: Logic Program Synthesis from Incomplete Information. Kluwer Academic Publishers, Massachusetts (1995)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    MATH  Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. Leavens, G., Baker, A., Ruby, C.: Preliminary Design of JML. TR 98-06u, Dept. of Computer Science, Iowa State Univ., USA (2003)

    Google Scholar 

  17. Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1987)

    MATH  Google Scholar 

  18. Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics