Abstract
Are finement calculus provides a method for transforming specifications to executable code, maintaining the correctness of the code with respect to its specification. In this paper we introduce modules into a logic programming refinement calculus. Modules allow data types to be grouped together with sets of procedures that manipulate the data types. By placing restrictions on the way a program uses a module, we develop a technique for refining the module so that it uses a more efficient representation of the data type.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
P. Bancroft and I. J. Hayes. Refining a module with opaque types. In Gopal Gupta, George Mohay, and Rodney Topor, editors, Proceedings, 16th Australian Computer Science Conference, Bris b ane, Australian Computer Science Communications, volume 15(1), pages 615–624, February 1993.
R. Colvin, I. J. Hayes, and P. Strooper. Data refining logic programs. In J. Grundy, M. Schwenke, and T. Vickers, editors, International Refinement Workshop and Formal Methods Pacific 1998, Discrete Mathematics and Theoretical Computer Science, pages 100–116. Springer, 1998.
R. Colvin, I. J. Hayes, and P. Strooper. Refining logic programs using types. In J. Edwards, editor, Australasian Computer Science Conference (ACSC 2000), pages 43–50. IEEE Computer Society, 2000. For an extended version see SVRCTR-99-25.
Y. Deville and K.-K. Lau. Logic program synthesis. Journal of Logic Programming, 19,20:321–350, 1994. Special Issue: Ten Years of Logic Programming.
Yves Deville. Logic Programming: Systematic Program Development. International series in logic programming. Addison-Wesley, 1990.
I. Hayes, R. Nickson, and P. Strooper. Refining specifications to logic programs. In J. Gallagher, editor, Logic Program Synthesis and Transformation. Proc. of the 6th Int. Workshop, LOPSTR’96, Stockholm, Sweden, August 1996, volume 1207 of Lecture Notes in Computer Science, pages 1–19. Springer, 1997.
I. Hayes, R. Nickson, P. Strooper, and R. Colvin. Ad eclarative semantics for logic program refinement. Technical Report 00-30, Software Verification Research Centre, The University of Queensland, 2000.
D. Hemer. Building tool support for refinement calculus for logic programming: Acom parison of interactive theorem provers. Technical Report 00-06, Software Verification Research Centre, The University of Queensland, 2000.
K.-K. Lau and M. Ornaghi. On specification frameworks and deductive synthesis of logic programs. In L. Fribourg and F. Turini, editors, Proc. LOPSTR 94 and META 94, Lecture Notes in Computer Science 883, pages 104–121. Springer-Verlag, 1994.
K.-K Lau and M. Ornaghi. Forms of logic specifications: Ap reliminary study. In J. Gallagher, editor, Logic Program Synthesis and Transformation. Proc. of the 6th Int. Workshop, LOPSTR’96, Stockholm, Sweden, August 1996, volume 1207 of Lecture Notes in Computer Science, pages 295–312. Springer, 1997.
B. Liskov and J. Guttag. Abstraction and Specification in Program Development. MIT Press, third edition, 1986.
C. C. Morgan. Programming from Specifications. Prentice Hall, second edition, 1994.
M. G. Read and E. Kazmierczak. Formal program development in modular Prolog. In T. P. Clement and K.-K. Lau, editors, Logic Program Synthesis and Transformation. Proc. of LOPSTR’91, University of Manchester, July 1991, Workshops in Computing, pages 69–93. Springer-Verlag, 1992.
Z. Somogyi, F. J. Henderson, and T. C. Conway. Mercury, an efficient purely declarative logic programming language. In R. Kotagiri, editor, Proc. of the Eighteenth Australasian Computer Science Conference, pages 499–512, Glenelg, South Australia, 1995. Australian Computer Science Communications.
J. M. Spivey. The Z Notation: A Reference Manual. Prentice Hall, second edition, 1992.
Y. V. Srinivas and R. Jullig. Specware: Formal support for composing software. In Bernhard Moller, editor, Proceedings of the Conference on Mathematics of Program Construction, volume 947 of Lecture Notes in Computer Science. Kloster Irsee, Germany, 1995.
W. M. Turski and T. S. E. Maibaum. Specification of Computer Programs. Addison-Wesley, 1987.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Colvin, R., Hayes, I., Strooper, P. (2001). A Technique for Modular Logic Program Refinement. In: Logic Based Program Synthesis and Transformation. LOPSTR 2000. Lecture Notes in Computer Science, vol 2042. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45142-0_3
Download citation
DOI: https://doi.org/10.1007/3-540-45142-0_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42127-6
Online ISBN: 978-3-540-45142-6
eBook Packages: Springer Book Archive