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
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
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)
Bowers, A.: Effiective Meta-programming in Declarative Languages. PhD thesis, Department of Computer Science, University of Bristol (January 1998)
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)
Boye, J., Maluszynski, J.: Directional Types and the Annotation Method. Journal of Logic Programming 33(3), 179–220 (1997)
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)
Brogi, A., Mancarella, P., Pedreschi, D., Turini, F.: Modular Logic Programming. ACM Transactions on Programming Languages and Systems 16(3), 225–237 (1994)
Espinosa, D.A.: Semantic Lego. PhD thesis, Graduate School of Arts and Sciences, Columbia University (1995)
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)
Hill, P., Lloyd, J.: The Gödel Programming Language. MIT Press, Cambridge (1994)
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)
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)
Kirschenbaum, M., Sterling, L., Jain, A.: Relating logic programs via program maps. Annals of Mathematics and Artifical Intelligence, 8(III-IV), 229–246 (1993)
Lakhotia, A.: A Workbench for Developing Logic Programs by Stepwise Enhancement. PhD thesis, Case Western Reserve University (1989)
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
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)
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)
Lohmann, W.: Ein Rahmenwerk für höherfunktionale Meta-Programmierung. Master’s thesis, University of Rostock, Department of Computer Science (October 1999)
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)
Moggi, E.: Notions of computation and monads. Information and Computation 93(1), 55–92 (1991)
Naish, L., Sterling, L.: A Higher Order Reconstruction of Stepwise Enhancement. In: Fuchs [8]
Pettorossi, A., Proietti, M.: Rules and Strategies for Transforming Functional and Logic Programs. ACM Computing Surveys 28(2), 360–414 (1996)
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)
Richardson, J., Fuchs, N.: Development of Correct Transformation Schemata for Prolog Programs. In: Fuchs [8]
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)
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)
Sterling, L., Shapiro, E.: The Art of Prolog, 2nd edn. MIT Press, Cambridge (1994)
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)
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)
Watt, D., Madsen, O.: Extended attribute grammars. Technical Report no. 10, University of Glasgow (July 1977)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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