Skip to main content Accessibility help
×
Home

Developing correct and efficient logic programs by transformation*

  • Alberto Pettorossi (a1) and Maurizio Proietti (a2)

Extract

The complex process of deriving programs from specifications is often divided into the following three steps: (i) the derivation of formal specifications from the informal ones; (ii) the validation of the formal specifications; and (iii) the derivation of executable programs from the formal specifications.

Copyright

References

Hide All
Apt, KR and Turini, F, (eds) 1995. Meta-Logics for Logic Programming, MIT Press.
Arsac, J and Kodratoff, Y, 1982. “Some techniques for recursion removal from recursive functionsACM Trans Programming Languages and Systems 4(2) 295322.
Benkerimi, K and Lloyd, JW, 1990. “A partial evaluation procedure for logic programs” In: Debray, S and Hermenegildo, M (eds.), Logic Programming: Proceedings of the 1990 North American Conference, Austin, Texas, 343358. MIT Press.
Bossi, A, Cocco, N and Dulli, S, 1990. “A method for specializing logic programsACM Trans Programming Languages and Systems 12(2) 253302.
Bossi, A, Cocco, N and Etalle, S, 1996. “Transforming left-terminating programs: The reordering problem” In: Proietti, M (ed.), Logic Program Synthesis and Transformation, Proceedings LOPSTR ‘95, Utrecht, The Netherlands, 3345, Springer-Verlag.
Boyer, RS and Moore, JS, 1975. “Proving theorems about Lisp functionsJournal of the ACM 22(1) 129144.
Brogi, A, Mancarella, P, Pedreschi, D and Turini, F, 1990. “Composition operators for logic theories” In: Lloyd, JW (ed.), Proceedings of the Symposium on Computational Logic 117134, Springer-Verlag.
Brough, DR and Hogger, CJ, 1987. “Compiling associativity into logic programsJournal of Logic Programming 4 345359.
Brough, DR and Hogger, CJ, 1991. “Grammar-related transformation of logic programsNew Generation Computing 9(1)115134.
Bruynooghe, M, De, Schreye D and Krekels, B, 1989. “Compiling controlJournal of Logic Programming 6 135162.
Burstall, RM and Darlington, J, 1977. “A transformation system for developing recursive programsJournal of the ACM 24(1) 4467.
Clark, KL and Tärnlund, S-Å, 1977. “A first order theory of data and programs” Proceedings Information Processing ‘77 939944, North-Holland.
Consel, C, 1996. “Program adaptation based on program transformation” Position paper for the MIT Workshop on Strategic Directions of Computing Research, (to appear in SIGPLAN Notices).
Debray, SK 1985. “Optimizing almost-tail-recursive Prolog programs” Proceedings IFIP International Conference on Functional Programming Languages and Computer Architecture Nancy France. Lecture Notes in Computer Science 201, 204219, Springer-Verlag.
Debray, SK, 1988. “Unfold/fold transformation and loop optimization of logic programsProceedings of SIGPLAN 88 Conference on Programming Language Design and Implementation Atlanta, Georgia. SIGPLAN Notices 23(7) 297307.
Debray, SK and Jain, M, 1994. “A simple program transformation for parallelism” In: Bruynooghe, M (ed.), Proceedings of the 1994 International Symposium on Logic Programming 305319, MIT Press.
Debray, SK and Warren, DS, 1989. “Functional computations in logic programsACM TOPLAS 11(3) 451481.
Flener, P and Deville, Y, 1993. “Logic program synthesis from incomplete specificationsJournal of Symbolic Computation 15 775805.
Fuchs, NE and Fromherz, MPJ, 1992. “Schema-based transformation of logic programs” In: Clement, T and Lau, K-K (eds.), Logic Program Synthesis and Transformation, Proceedings LOPSTR‘91, Manchester, UK, 111125, Springer-Verlag.
Fuchs, NE and Schwitter, R, 1995. “Specifying logic programs in controlled natural language” Workshop on Computational Logic for Natural Language Processing, Proceedings CLNLP ‘95, Edinburgh University.
Futamura, Y, 1971. “Partial evaluation of computation process—an approach to a compiler-compilerSystems, Computers, Controls 2(5) 4550.
Gallagher, JP, 1988. “Transforming programs by specializing interpreters” Proceedings Seventh European Conference on Artificia1 Intelligence, ECAI ‘86 109122.
Gallagher, JP, 1993. “Tutorial on specialization of logic programs’ Proceedings of ACM SIGPLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation, PEPM ‘93 Copenhagen, Denmark, 8898, ACM Press.
Gallagher, JP and de, Waal DA, 1993. “Deletion of redundant unary type predicates from logic programs” Proceedings of LoPSTr ’92 Manchester, UK, 151167, Springer-Verlag.
Gegg-Harrison, TS, 1995. “Representing logic program schemata in λ-Prolog” In: Sterling, L (ed.), Proceedings of the 12th International Conference on Logic Programming,467481.
Huet, G and Lang, B, 1978. “Proving and applying program transformation expressed with second-order patternsActa Informatica 11 3155.
Jones, ND, Gomard, CK and Sestoft, P, 1993. Partial Evaluation and Automatic Program Generation, Prentice Hall.
Kirschenbaum, M, Lakhotia, A and Sterling, L, 1989. “Skeletons and techniques for Prolog programming” TR 89170, Case Western Reserve University.
Komorowski, HJ, 1982. “Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation in the case of Prolog” Ninth ACM Symposium on Principles of Programming Languages Albuquerque, New Mexico, 255267.
Komorowski, HJ, 1989. “Towards synthesis of programs in the partial deduction framework” Proceedings of the Workshop on Automating Software Design Detroit, MI, 138143, Kestrel Institute.
Kott, L, 1985. “Unfold/fold program transformation” Algebraic Methods in Semantics 411434, Cambridge University Press.
Lakhotia, A and Sterling, L, 1988. “Composing recursive logic programs with clausal joinNew Generation Computing 6(2 & 3) 211226.
Lakhotia, A and Sterling, L, 1990. “ProMix: A Prolog partial evaluation system” In: Sterling, L (ed.), The Practice of Prolog 137179, MIT Press.
Leuschel, M, De, Schreye D and de, Waal A, 1996. “A conceptual embedding of folding into partial deduction: Towards a maximal integration” Report CW 225, K.U. Leuven, Belgium.
Lloyd, JW, 1987. Foundations of Logic Programming, Springer-Verlag.
Lloyd, JW and Shepherdson, JC, 1991. “Partial evaluation in logic programmingJournal of Logic Programming 11 17242.
Martens, B, De, Schreye D and Bruynoogh, M, 1992. “Sound and complete partial deduction with unfolding based on well-founded measures” Proceedings of the International Conference on Fifth Generation Computer Systems 473480, Ohmsha Ltd., lOS Press.
Mogensen, T and Bondorf, A, 1993. “Logimix: A self-applicable partial evaluation for Prolog” In: Lau, KK and Clement, T (eds.), Logic Program Synthesis and Transformation, Proceedings LOPSTR ‘92 Manchester, UK, 214227, Springer-Verlag.
Partsch, HA, 1990. Specification and Transformation of Programs, Springer-Verlag.
Paterson, MS and Hewitt, CE, 1970. “Comparative schematology” Conference on Concurrent Systems and Parallel Computation Project MAC Woods Hole, MA, 119127.
Pettorossi, A and Proietti, M, 1994. “Transformation of logic programs: Foundations and techniquesJournal of Logic Programming 19(20) 261320.
Pettorossi, A and Proietti, M, 1996. “A theory of logic program specialization and generalization for dealing with input data properties” Proceedings of the Dagstuhl Seminar on Partial Evaluation Lecture Notes in Computer Science 1110, 386408, Springer-Verlag.
Pettorossi, A, Proietti, M and Renault, S, 1996. “Enhancing partial deduction via unfold/fold rules” Logic Program Synthesis and Transformation, Proceedings of LOPSTR ‘96 Stockholm, Sweden,Springer-Verlag (to appear in: Lecture Notes in Computer Science).
Prestwich, S, 1993. “Online partial deduction of large programs” Proceedings ACM Sigplan Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM ‘93 Copenhagen, Denmark, 111118, ACM Press.
Proietti, M and Pettorossi, A, 1993. “The loop absorption and the generalization strategies for the development of logic programs and partial deductionJournal of Logic Programming 16(1–2) 123161.
Proietti, M and Pettorossi, A, 1994a. “Completeness of some transformation strategies for avoiding unnecessary logical variables” In: Van Hentenryck, P (ed.), Proceedings of the Eleventh International Conference on Logic Programming (ICLP ‘94) Ligure, S Margherita, Italy, , 06 1318, 714–729, MIT Press.
Proietti, M and Pettorossi, A, 1994b. “Synthesis of programs from unfold/fold proofs” In: Deville, Y (ed.), Logic Program Synthesis and Transformation, Proceedings of LOPSTR ‘93 Louvain-la-Neuve, Belgium, 141158, Springer-Verlag.
Proietti, M and Pettorossi, A, 1995. “Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programsTheoretical Computer Science 142(1) 89124.
Safra, S and Shapiro, E, 1986. “Meta interpreters for real” In: Kugler, HJ (ed.), Proceedings Information Processing 86 271278, North-Holland.
Sahlin, D, 1993. “Mixtus: An automatic partial evaluator for full PrologNew Generation Computing 12 751.
Sawamura, H and Takeshima, T, 1985. “Recursive unsolvability of determinacy, solvable cases of determinacy and their application to Prolog optimization” Proceedings of the International Symposium on Logic Boston, 200207, IEEE Press.
Seki, H, 1991. “Unfold/fold transformation of stratified programsTheoretical Computer Science 86 107139.
Seki, H and Furukawa, K, 1987. “Notes on transformation techniques for generate and test logic programs” Proceedings of the International Symposium on Logic Programming, San Francisco, 215223, IEEE Press.
Smith, DR, 1993. “Automating the design of algorithms” In: Möller, B, Partsch, H and Schuman, S (eds.), Formal Program Development, IFIP TC2/ WG 2.1 State-of-the-Art Report Lecture Notes in Computer Science 755, 324–354,Springer-Verlag.
Sterling, L, 1986. “Incremental flavour-mixing of meta-interpreters for expert system construction” Proceedings 3rd International Symposium on Logic Programming, Salt Lake City, Utah, 2027, IEEE Press.
Sterling, LS and Yalcinalp, , 1996. “Logic programming and software engineering” Knowledge Engineering Review (this issue).
Takeuchi, A, 1986. “Affinity between meta-interpreters and partial evaluation” In: Kugler, HJ (ed.), Proceedings of Information Processing ‘86 279282, North-Holland.
Takeuchi, A and Furukawa, K, 1986. “Partial evaluation of Prolog programs and its application to metaprogramming” In: Kugler, HJ (ed.), Proceedings of Information Processing “86, 415420, North-Holland.
Tamaki, H and Sato, T, 1984. “Unfold/fold transformation of logic programs” In: Tärnlund, SA (ed.), Proceedings of the Second International Conference on Logic Programming, Uppsala, Sweden, 127138.
Tarau, P and Boyer, M, 1990. “Elementary logic programs” In: Deransart, P and Maluszynski, J (eds.), Proceedings PLILP ‘90, 159173, Springer-Verlag.
Toni, F and Kowalski, R, 1995. “Reduction of abductive logic programs to normal logic programs” In: Sterling, L (ed.), Proceedings of the 12th International Conference on Logic Programming 367381, MIT Press.
Vasconcelos, WW and Fuchs, NE, 1996. “An opportunistic approach for logic program analysis and optimization using enhanced schema-based transformations” In: Proietti, M (ed.), Logic Program Synthesis and Transformation, Proceedings LOPSTR ‘95, Utrecht, The Netherlands, Lecture Notes in Computer Science 1048, 174188, Springer-Verlag.

Related content

Powered by UNSILO

Developing correct and efficient logic programs by transformation*

  • Alberto Pettorossi (a1) and Maurizio Proietti (a2)

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed.