Skip to main content

Specifying Compositional Units for Correct Program Development in Computational Logic

  • Chapter
Program Development in Computational Logic

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

Abstract

In order to provide a formalism for defining program correctness and to reason about program development in Computational Logic, we believe that it is better to distinguish between specifications and programs. To this end, we have developed a general approach to specification that is based on a model-theoretic semantics. In our previous work, we have shown how to define specifications and program correctness for open logic programs. In particular we have defined a notion of correctness called steadfastness, that captures at once modularity, reusability and correctness. In this paper, we review our past work and we show how it can be used to define compositional units that can be correctly reused in modular or component-based software development.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Abrial, J.R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)

    Book  MATH  Google Scholar 

  2. Astesiano, E., Kreowski, H.-J., Krieg-Bruckner, B. (eds.): Algebraic Foundations of Systems Specifications. Springer, Heidelberg (1999)

    Google Scholar 

  3. Atkinson, C., et al.: Component-based Product Line Engineering with UML. Addison-Wesley, Reading (2001)

    Google Scholar 

  4. Barwise, J. (ed.): Handbook of Mathematical Logic. North-Holland, Amsterdam (1977)

    Google Scholar 

  5. 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), 127–170 (1983)

    MathSciNet  Google Scholar 

  6. Bourdeau, R.H., Cheng, B.H.C.: A formal semantics for object model diagrams. IEEE Trans. Soft. Eng. 21(10), 799–821 (1995)

    Article  Google Scholar 

  7. Bugliesi, M., Lamma, E., Mello, P.: Modularity in logic programming. J. Logic Programming 19(20), 443–502 (1994); Special issue: Ten years of logic programming

    Article  MathSciNet  Google Scholar 

  8. Clark, K.L.: Predicate Logic as a Computational Formalism. Report 79/59, Imperial College of Science and Technology, University of London (1979)

    Google Scholar 

  9. Cook, S., Kleppe, A., Mitchell, R., Rumpe, B., Warmer, J., Wills, A.: The Amsterdam manifesto on OCL. In: Clark, A., Warmer, J. (eds.) Object Modeling with the OCL. LNCS, vol. 2263, pp. 115–149. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

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

    Google Scholar 

  11. Deville, Y., Lau, K.-K.: Logic program synthesis. J. Logic Programming 19(20), 321–350 (1994); Special Issue: Ten Years of Logic Programming

    Article  MathSciNet  Google Scholar 

  12. D’Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Reading (1999)

    Google Scholar 

  13. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 1. Springer, Heidelberg (1987)

    Google Scholar 

  14. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2. Springer, Heidelberg (1989)

    Google Scholar 

  15. Flener, P., Lau, K.-K., Ornaghi, M.: On correct program schemas. In: Fuchs, N.E. (ed.) LOPSTR 1997. LNCS, vol. 1463, pp. 124–143. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  16. Flener, P., Lau, K.-K., Ornaghi, M., Richardson, J.: An abstract formalisation of correct schemas for program synthesis. Journal of Symbolic Computation 30(1), 93–127 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  17. Gallier, J.H.: Logic for Computer Science: Foundations for Automatic Theorem Proving. Harper and Row, New York (1986)

    MATH  Google Scholar 

  18. Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering, 2nd edn. Prentice Hall, Englewood Cliffs (2003)

    Google Scholar 

  19. Goguen, J.A., Burstall, R.M.: Institutions: Abstract model theory for specification and programming. J. ACM 39(1), 95–146 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  20. Guttag, J.V., Horning, J.J.: Larch: Languages and Tools for Formal Specification. Springer, Heidelberg (1993)

    MATH  Google Scholar 

  21. Hodges, W.: Logical Features of Horn Clauses. In: Gabbay, D.M., Hogger, C.J., Robinson, J.A. (eds.) Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 1, pp. 449–503. Oxford University Press, Oxford (1993)

    Google Scholar 

  22. Hogger, C.J.: Derivation ofLogic Programs. J. ACM 28(2), 372–392 (1981)

    Article  MATH  MathSciNet  Google Scholar 

  23. Isabelle: http://www.cl.cam.ac.uk/Research/HVG/Isabelle

  24. Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice Hall, Englewood Cliffs (1990)

    MATH  Google Scholar 

  25. Jimenez, R.M., Orejas, F., Ehrig, H.: Compositionality and Compatibility of Parametrization and Parameter Passing in Specification Languages. Math. Struct. Computer Science 5, 283–314 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  26. Kreitz, C., Lau, K.-K., Ornaghi, M.: Formal reasoning about modules, reuse and their correctness. In: Gabbay, D.M., Ohlbach, H.J. (eds.) FAPR 1996. LNCS (LNAI), vol. 1085, pp. 384–399. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  27. Lau, K.-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 

  28. Lau, K.-K., Ornaghi, M.: Forms of logic specifications: A preliminary study. In: Gallagher, J.P. (ed.) LOPSTR 1996. LNCS, vol. 1207, pp. 295–312. Springer, Heidelberg (1997)

    Google Scholar 

  29. Lau, K.-K., Ornaghi, M.: The relationship between logic programs and specifications the subset example revisited. Logic Programming 30(3), 239–257 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  30. Lau, K.-K., Ornaghi, M.: OOD frameworks in component-based software development in computational logic. In: Flener, P. (ed.) LOPSTR 1998. LNCS, vol. 1559, pp. 101–123. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  31. Lau, K.-K., Ornaghi, M.: Isoinitial semantics for logic programs. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 223–238. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  32. Lau, K.-K., Ornaghi, M.: Correct object-oriented systems in computational logic. In: Pettorossi, A. (ed.) LOPSTR 2001. LNCS, vol. 2372, pp. 168–190. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  33. Lau, K.-K., Ornaghi, M.: Specifying object-oriented systems in computational logic. In: Bruynooghe, M. (ed.) Pre-Proceedings of LOPSTR 2003, pp. 49–64 (2003); Report CW 365, Dept. of Computer Science, Katholieke Universiteit Leuven, Belgium

    Google Scholar 

  34. Lau, K.-K., Ornaghi, M., Tarnlund, S.-A.: Steadfast logic programs. J. Logic Programming 38(3), 259–294 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  35. Lloyd, J.W.: Foundations ofLogic Programming, 2nd edn. Springer, Heidelberg (1987)

    Google Scholar 

  36. Maibaum, T.: Conservative extensions, interpretations between theories and all that. In: Bidoit, M., Dauchet, M. (eds.) CAAP 1997, FASE 1997, and TAPSOFT 1997. LNCS, vol. 1214, pp. 40–67. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  37. Matijacevic, Y.V.: Recursively enumerable sets are Diophantine. Dokl. Akad. Nauk SSSR 191, 279–282 (1970)

    MathSciNet  Google Scholar 

  38. Miglioli, P., Moscato, U., Ornaghi, M.: Abstract parametric classes and abstract data types defined by classical and constructive logical methods. J. Symbolic Computation 18, 41–81 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  39. Miglioli, P., Moscato, U., Ornaghi, M.: An algebraic framework for the definition of compositional semantics of normal logic programs. The Journal of Logic Programming 40, 89–123 (1999)

    Article  Google Scholar 

  40. Read, M.G., Kazmierczak, E.A.: Formal program development in modular Prolog: A case study. In: Clement, T.P., Lau, K.-K. (eds.) Proc. LOPSTR 1991, pp. 69–93. Springer, Heidelberg (1992)

    Google Scholar 

  41. Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1999)

    Google Scholar 

  42. Sannella, D., Sokolowski, S., Tarlecki, A.: Toward formal development of programs from algebraic specifications: parametrisation revisited. Acta Informatica 29(8), 689–736 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  43. Sannella, D., Tarlecki, A.: Extended ML: past, present and future. In: Orejas, F., Ehrig, H., Jantke, K.P., Reichel, H. (eds.) Abstract Data Types 1990. LNCS, vol. 534, pp. 297–322. Springer, Heidelberg (1991)

    Google Scholar 

  44. Sannella, D., Wallen, L.A.: A calculus for the construction of mdular prolog programs. In: IEEE 4th Symposium on Logic Programming, IEEE, Los Alamitos (1987)

    Google Scholar 

  45. Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall, Englewood Cliffs (1992)

    Google Scholar 

  46. Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Reading (2002)

    Google Scholar 

  47. Wirsing, M.: Algebraic specification. In: Van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, pp. 675–788. Elsevier, Amsterdam (1990)

    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 chapter

Cite this chapter

Lau, KK., Ornaghi, M. (2004). Specifying Compositional Units for Correct Program Development in Computational Logic. In: Bruynooghe, M., Lau, KK. (eds) Program Development in Computational Logic. Lecture Notes in Computer Science, vol 3049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25951-0_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25951-0_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22152-4

  • Online ISBN: 978-3-540-25951-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics