Skip to main content

Roles of Program Extension

  • Conference paper

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

Abstract

A formal and effective approach to the extension of the computational behaviour of logic programs is presented. The approach builds upon the following concepts. The extension of computational behaviour is modelled by semantics-preserving program transformations. Several basic roles involved in such transformations are identified. Every transformation defined solely in terms of the basic roles will be semantics-preserving by definition. Functional meta-programs on logic object programs are used to specify the basic roles and to derive programming techniques in the style of stepwise enhancement. Thus, the process of extending the computational behaviour of logic programs is regarded as disciplined meta-programming.

This work was supported, in part, by DFG, in the project Komposition beweisbarkorrekter Sprachbausteine, and by NWO, in the project Generation of Program Transformation Systems.

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. Augustsson, L.: Cayenne – A Language with Dependent Types. In: Swierstra, S.D., Oliveira, J.N. (eds.) AFP 1998. LNCS, vol. 1608, pp. 240–267. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  2. Bowers, A.: Effiective Meta-programming in Declarative Languages. PhD thesis, Department of Computer Science, University of Bristol (January 1998)

    Google Scholar 

  3. Bowles, A., Robertson, D., Vasconcelos, W., Vargas, V.M., Bental, D.: Applying Prolog Programming Techniques. International Journal of Human-Computer Studies 41(3), 329–350 (1994)

    Article  Google Scholar 

  4. Boye, J., Maluszynski, J.: Directional Types and the Annotation Method. Journal of Logic Programming 33(3), 179–220 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  5. Brogi, A., Mancarella, P., Pedreschi, D., Turini, F.: Logic Programming within a Functional Framework. In: Deransart, P., Małuszyński, J. (eds.) PLILP 1990. LNCS, vol. 456, pp. 372–386. Springer, Heidelberg (1990)

    Chapter  Google Scholar 

  6. Brogi, A., Mancarella, P., Pedreschi, D., Turini, F.: Modular Logic Programming. ACM Transactions on Programming Languages and Systems 16(3), 225–237 (1994)

    Google Scholar 

  7. Espinosa, D.A.: Semantic Lego. PhD thesis, Graduate School of Arts and Sciences, Columbia University (1995)

    Google Scholar 

  8. Chasseur, E., Deville, Y.: Logic program schemas, constraints, and semi-unification. In: Fuchs, N.E. (ed.) LOPSTR 1997. LNCS, vol. 1463, p. 69. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  9. Hill, P., Lloyd, J.: The Gödel Programming Language. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

  10. Jain, A.: Projections of Logic Programs using Symbol Mappings. In: Sterling, L. (ed.) Logic Programming, Proceedings of the Twelfth International Conference on Logic Programming, Tokyo, Japan. MIT Press, Cambridge (1995)

    Google Scholar 

  11. Kirschenbaum, M., Michaylov, S., Sterling, L.: Skeletons and Techniques as a Normative Approach to Program Development in Logic-Based Languages. In: Proceedings ACSC 1996, Australian Computer Science Communications, vol. 18(1), pp. 516–524 (1996)

    Google Scholar 

  12. Kirschenbaum, M., Sterling, L., Jain, A.: Relating logic programs via program maps. Annals of Mathematics and Artifical Intelligence, 8(III-IV), 229–246 (1993)

    Google Scholar 

  13. Lakhotia, A.: A Workbench for Developing Logic Programs by Stepwise Enhancement. PhD thesis, Case Western Reserve University (1989)

    Google Scholar 

  14. Lämmel, R.: Functional meta-programs towards reusability in the declarative paradigm. PhD thesis, University of Rostock, Department of Computer Science, Published by Shaker Verlag (1998) ISBN 3-8265-6042-6

    Google Scholar 

  15. Lämmel, R.: Declarative aspect-oriented programming. In: Danvy, O. (ed.) Proceedings PEPM 1999, 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation PEPM 1999, San Antonio (Texas), BRICS Notes Series NS-99-1, pp. 131–146 (January 1999)

    Google Scholar 

  16. Lämmel, R., Riedewald, G.: Reconstruction of paradigm shifts. In: Second Workshop on Attribute Grammars and their Applications, pp. 37–56 (March 1999) (reviewed version submitted to Informatica)

    Google Scholar 

  17. Lohmann, W.: Ein Rahmenwerk für höherfunktionale Meta-Programmierung. Master’s thesis, University of Rostock, Department of Computer Science (October 1999)

    Google Scholar 

  18. Meijer, E., Jeuring, J.: Merging Maps and Folds for Functional Programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 228–266. Springer, Heidelberg (1995)

    Google Scholar 

  19. Moggi, E.: Notions of computation and monads. Information and Computation 93(1), 55–92 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  20. Naish, L., Sterling, L.: A Higher Order Reconstruction of Stepwise Enhancement. In: Fuchs [8]

    Google Scholar 

  21. Pettorossi, A., Proietti, M.: Rules and Strategies for Transforming Functional and Logic Programs. ACM Computing Surveys 28(2), 360–414 (1996)

    Article  Google Scholar 

  22. Power, A., Sterling, L.: A notion of Map Between Logic Programs. In: Warren, D.H.D., Szeredi, P. (eds.) Proceedings 7th International Conference on Logic Programming, pp. 390–404. The MIT Press, Cambridge (1990)

    Google Scholar 

  23. Richardson, J., Fuchs, N.: Development of Correct Transformation Schemata for Prolog Programs. In: Fuchs [8]

    Google Scholar 

  24. Robertson, D.: An Empirical Study of the LSS specification Toolkit in Use. In: 8th International Conference on Software Engineering and Knowledge Engineering, Hyatt Regency, Lake Tahoe, Nevada, USA, June 10-12 (1996)

    Google Scholar 

  25. Sterling, L., Jain, A., Kirschenbaum, M.: Composition Based on Skeletons and Techniques. In: ILPS 1993 post conference workshop on Methodologies for Composing Logic Programs, Vancouver (October 1993)

    Google Scholar 

  26. Sterling, L., Shapiro, E.: The Art of Prolog, 2nd edn. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

  27. Taha, W., Sheard, T.: Multi-stage programming with explicit annotations. In: Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM 1997). ACM SIGPLAN Notices, vol. 32(12), pp. 203–217. ACM Press, New York (1997)

    Chapter  Google Scholar 

  28. Wadler, P.: The essence of functional programming. In: Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Albequerque, New Mexico, pp. 1–14 (January 1992)

    Google Scholar 

  29. Watt, D., Madsen, O.: Extended attribute grammars. Technical Report no. 10, University of Glasgow (July 1977)

    Google Scholar 

  30. Whittle, J., Bundy, A., Boulton, R., Lowe, H.: An ML Editor Based on Proofsas- Programs. In: Hall, R., Tyugu, E. (eds.) Proceedings of ASE-1999: The 14th IEEE Conference on Automated Software Engineering, Cocoa Beach, Florida, IEEE CS Press, Los Alamitos (1999)

    Google Scholar 

  31. Xi, H., Pfenning, F.: Dependent types in practical programming. In: Conference Record of POPL 1999: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas, pp. 214–227. ACM Press, New York (1999)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lämmel, R., Riedewald, G., Lohmann, W. (2000). Roles of Program Extension. In: Bossi, A. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 1999. Lecture Notes in Computer Science, vol 1817. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10720327_9

Download citation

  • DOI: https://doi.org/10.1007/10720327_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67628-7

  • Online ISBN: 978-3-540-45148-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics