Abstract
Program synthesis research aims at developing a program that develops correct programs from specifications, with as much or as little interaction as the specifier wants. I overview the main achievements in deploying logic for program synthesis. I also outline the prospects of such research, arguing that, while the technology scales up from toy programs to real-life software and to commercially viable tools, computational logic will continue to be a driving force behind this progress.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
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
J.-R. Abrial. The B-Book: Assigning Programs to Meanings. Cambridge University Press, 1996.
R. Balzer. A 15 year perspective on automatic programming. IEEE TSE 11(11):1257–1268, 1985.
A. Barr and E.A. Feigenbaum. The Handbook of Artificial Intelligence, Chapter X: Automatic Programming, pp. 297–379. Morgan Kaufmann, 1982.
D.R. Barstow. A perspective on automatic programming. AI Magazine, Spring 1984:5–27. Also in [74], pp. 537–559.
J.L. Bates and R.L. Constable. Proofs as programs. ACM TOPLAS 7(1):113–136, 1985.
F.L. Bauer, B. Möller, H. Partsch, and P. Pepper. Formal program construction by transformations: Computer-aided, intuition-guided programming. IEEE TSE 15(2):165–180, 1989. Details in LNCS 183/292, Springer-Verlag, 1985/87.
M.J. Beeson. Foundations of Constructive Mathematics. Modern Surveys in Mathematics, Volume 6. Springer-Verlag, 1985.
W. Bibel. Syntax-directed, semantics-supported program synthesis. AI 14(3):243–261, 1980.
W. Bibel. Concurrent software production. In R.D. McCartney (eds). Automating Software Design. The MIT Press, 1991 [61], pp. 243–261. Toward predicative programming. In [61], pp. 405–424.
W. Bibel and K.M. Hörnig. lops: A system based on a strategic approach to program synthesis. In G. Guiho, and Y. Kodratoff (eds). Automatic Program Construction Techniques. Macmillan, 1984 [15], pp. 69–89.
W. Bibel et al. A multi-level approach to program synthesis. In N.E. Fuchs (ed), Proc. of LOPSTR’97, pp. 1–28. LNCS 1463. Springer-Verlag, 1998.
A.W. Biermann. Automatic programming: A tutorial on formal methodologies. J. of Symbolic Computation 1(2):119–142, 1985.
A.W. Biermann. Automatic programming. In S.C. Shapiro (ed), Encyclopedia of Artificial Intelligence, pp. 59–83. John Wiley, 1992.
A.W. Biermann and G. Guiho (eds). Computer Program Synthesis Methodologies. Volume ASI–C95. D. Reidel, 1983.
A.W. Biermann, G. Guiho, and Y. Kodratoff (eds). Automatic Program Construction Techniques. Macmillan, 1984.
A.W. Biermann and W. Bibel (guest eds), Special Issue on Automatic Programming. J. of Symbolic Computation 15(5–6), 1993.
C.B. Jones. Systematic Software Development using vdm. Prentice-Hall, 1990.
L. Blaine, L. Gilham, J. Liu, D.R. Smith, and S. Westfold. PlanWare: Domain-specific synthesis of high-performance schedulers. In Proc. of ASE’98, pp. 270–279. IEEE Computer Society Press, 1998.
A. Bundy. A broader interpretation of logic in logic programming. In R.A. Kowalski and K.A. Bowen (eds), Proc. of ICLP’88, pp. 1624–1648. The MIT Press, 1988.
A. Bundy, A. Smaill, and G. Wiggins. The synthesis of logic programs from inductive proofs. In J.W. Lloyd (ed), Proc. of the ESPRIT Symp. on Computational Logic, pp. 135–149. Springer-Verlag, 1990.
A. Bundy, F. van Harmelen, C. Horn, A. Smaill. The oyster/clam system. In M.E. Stickel (ed), Proc. CADE’90, pp. 647–648. LNCS 449. Springer-Verlag, 1990.
R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. J. of the ACM 24(1):44–67, 1977.
K.L. Clark and S. Sickel. Predicate logic: A calculus for deriving programs. In Proc. of IJCAI’77, pp. 410–411.
R.L. Constable, S.F. Allen, H.M. Bromley, et al. Implementing Mathematics with the NuPrl Proof Development System. Prentice-Hall, 1986.
J. Darlington. An experimental program transformation and synthesis system. AI 16(1):1–46, 1981. Also in [74], pp. 99–121.
N. Dershowitz. The Evolution of Programs. Birkhäuser, 1983.
Y. Deville and K.-K. Lau. Logic program synthesis. J. of Logic Programming 19–20:321–350, 1994.
T. Ellman, J. Keane, A. Banerjee, and G. Armhold. A transformation system for interactive reformulation of design optimization strategies. Research in Engineering Design 10(1):30–61, 1998.
L.-H. Eriksson. Synthesis of a unification algorithm in a logic programming calculus. J. of Logic Programming 1(1):3–33, 1984.
M.S. Feather. A survey and classification of some program transformation approaches and techniques. In L.G.L.T. Meertens (ed), Program Specification and Transformation, pp. 165–195. Elsevier, 1987.
S.F. Fickas. Automating the transformational development of software. IEEE TSE 11(11):1268–1277, 1985.
B. Fischer, J. Schumann, and G. Snelting. Deduction-based software component retrieval. In W. Bibel and P.H. Schmidt (eds), Automated Deduction: A Basis for Applications, vol. III, chap. 11. Kluwer, 1998.
B. Fischer and J. Whittle. An integration of deductive retrieval into deductive synthesis. In Proc. of ASE’99, pp. 52–61. IEEE Computer Society, 1999.
P. Flener. Logic Program Synthesis from Incomplete Information. Kluwer Academic Publishers, 1995.
P. Flener, K.-K. Lau, and M. Ornaghi. Correct-schema-guided synthesis of steadfast programs. In Proc. of ASE’97, pp. 153–160. IEEE Computer Society, 1997.
P. Flener, K.-K. Lau, M. Ornaghi, and J.D.C. Richardson. An abstract formalisation of correct schemas for program synthesis. J. of Symbolic Computation 30(1):93–127, July 2000.
P. Flener and S. Yīlmaz. Inductive synthesis of recursive logic programs: Achievements and prospects. J. of Logic Programming 41(2–3):141–195, November/December 1999.
P. Flener, H. Zidoum, and B. Hnich. Schema-guided synthesis of constraint logic programs. In Proc. of ASE’98, pp. 168–176. IEEE Computer Society, 1998.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
J. Goguen and G. Malcolm. Algebraic Semantics of Imperative Programs. The MIT Press, 1997.
A.T. Goldberg. Knowledge-based programming: A survey of program design and construction techniques. IEEE TSE 12(7):752–768, 1986.
M.J. Gordon, A.J. Milner, and C.P. Wadsworth. Edinburgh lcf-A Mechanised Logic of Computation. LNCS 78. Springer-Verlag, 1979.
J.M. Gratch and S.A. Chien. Adaptive problem-solving for large scale scheduling problems: A case study. J. of Artificial Intelligence Research 4:365–396, 1996.
C. Green. Application of theorem proving to problem solving. Proc. of IJCAI’69, pp. 219–239. Also in B.L. Webber and N.J. Nilsson (eds), Readings in Artificial Intelligence, pp. 202–222. Morgan Kaufmann, 1981.
C. Green and D.R. Barstow. On program synthesis knowledge. AI 10(3):241–270, 1978. Also in [74], pp. 455–474.
C. Green and S. Westfold. Knowledge-based programming self applied. Machine Intelligence 10, 1982. Also in [74], pp. 259–284.
Å. Hansson. A Formal Development of Programs. Ph.D. Thesis, Univ. of Stockholm (Sweden), 1980.
J. Hesketh, A. Bundy, and A. Smaill. Using middle-out reasoning to control the synthesis of tail-recursive programs. In D. Kapur (ed), Proc. of CADE’92. LNCS 606. Springer-Verlag, 1992.
C.J. Hogger. Derivation of logic programs. J. of the ACM 28(2):372–392, 1981.
W.A. Howard. The formulae-as-types notion of construction. In J.P. Seldin and J.R. Hindley (eds), To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pp. 479–490. Academic Press, 1980.
G. Huet and G.D. Plotkin (eds). Logical Frameworks. Cambridge Univ. Press, 1991.
E. Kant. On the efficient synthesis of efficient programs. AI 20(3):253–305, 1983. Also in [74], pp. 157–183.
R. Kowalski. Logic for Problem Solving. North-Holland, 1979.
I. Kraan, D. Basin, and A. Bundy. Middle-out reasoning for synthesis and induction. J. of Automated Reasoning 16(1–2):113–145, 1996.
K.-K. Lau and S.D. Prestwich. Synthesis of a family of recursive sorting procedures. In V. Saraswat and K. Ueda (eds), Proc. ILPS’91, pp. 641–658. MIT Press, 1991.
K.-K. Lau and M. Ornaghi. On specification frameworks and deductive synthesis of logic programs. In L. Fribourg and F. Turini (eds), Proc. of LOPSTR’94 and META’94, pp. 104–121. LNCS 883. Springer-Verlag, 1994.
B. Le Charlier and P. Flener. Specifications are necessarily informal, or: Some more myths of formal methods. J. of Systems and Software 40(3):275–296, 1998.
H. Liebermann (guest ed), Special Section on Programming by Example. Comm. of the ACM 43(3):72–114, 2000.
J.W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.
M.R. Lowry and R. Duran. Knowledge-based software engineering. In A. Barr, P.R. Cohen, and E.A. Feigenbaum (eds), The Handbook of Artificial Intelligence. Volume IV, pp. 241–322. Addison-Wesley, 1989.
M.R. Lowry and R.D. McCartney (eds). Automating Software Design. The MIT Press, 1991.
M.R. Lowry, J. Van Baalen. MetaAmphion: Synthesis of efficient domain-specific program synthesis systems. Automated Software Engineering 4:199–241, 1997.
Z. Manna and R.J. Waldinger. Synthesis: Dreams → Programs. IEEE TSE 5(4):294–328, 1979.
Z. Manna and R.J. Waldinger. A deductive approach to program synthesis. ACM TOPLAS 2(1):90–121, 1980. Also in [15], pp. 33–68. Also in [74], pp. 3–34.
Z. Manna and R.J. Waldinger. Deductive synthesis of the unification algorithm. Science of Computer Programming 1:5–48, 1981. Also in [14], pp. 251–307.
Z. Manna and R.J. Waldinger. The origin of a binary-search paradigm. Science of Computer Programming 9:37–83, 1987.
Z. Manna and R.J. Waldinger. Fundamentals of deductive program synthesis. IEEE TSE 18(8):674–704, 1992.
P. Martin-Löf. Constructive mathematics and computer programming. In Proc. of the 1979 Int’l Congress for Logic, Methodology, and Philosophy of Science, pp. 153–175. North-Holland, 1982.
S. Minton. Automatically configuring constraint satisfaction programs: A case study. Constraints 1(1–2):7–43, 1996.
J. Mostow (guest ed), Special Issue on AI and Software Engineering. IEEE TSE 11(11), 1985.
B. Nordström, K. Petersson, and J.M. Smith. Programming in Martin-Löf’s Type Theory: An Introduction. Clarendon Press, 1990.
H.A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.
H.A. Partsch and R. Steinbrüggen. Program transformation systems. Computing Surveys 15(3):199–236, 1983.
C. Rich and R.C. Waters (eds). Readings in Artificial Intelligence and Software Engineering. Morgan Kaufmann, 1986.
C. Rich and R.C. Waters. Automatic programming: Myths and prospects. IEEE Computer 21(8):40–51, 1988.
C. Rich and R.C. Waters. The Programmer’s Apprentice: A research overview. IEEE Computer 21(11):10–25, 1988.
T. Sato and H. Tamaki. First-order compiler: A deterministic logic program synthesis algorithm. J. of Symbolic Computation 8(6):605–627, 1989.
D. Sannella and A. Tarlecki. Essential concepts of algebraic specification and program development. Formal Aspects of Computing 9:229–269, 1997.
D.R. Smith. The synthesis of lisp programs from examples: A survey. In G. Guiho, and Y. Kodratoff (eds). Automatic Program Construction Techniques. Macmillan, 1984 [15], pp. 307–324.
D.R. Smith. Top-down synthesis of divide-and-conquer algorithms. AI 27(1):43–96, 1985.
D.R. Smith. kids: A semiautomatic program development system. IEEE TSE 16(9):1024–1043, 1990.
D.R. Smith. Towards the synthesis of constraint propagation algorithms. In Y. Deville (ed), Proc. of LOPSTR’93, pp. 1–9, Springer-Verlag, 1994.
D.R. Smith. Constructing specification morphisms. J. of Symbolic Computation 15(5–6): 571–606, 1993.
D.R. Smith. Toward a classification approach to design. Proc. of AMAST’96, pp. 62–84. LNCS 1101. Springer-Verlag, 1996.
J.M. Spivey. The z Notation: A reference manual. Prentice-Hall, 1992.
Y.V. Srinivas and R. Jüllig. SpecWare: Formal support for composing software. In B. Möller (ed), Proc. of MPC’95, pp. 399–422. LNCS 947. Springer-Verlag, 1995.
D.M. Steier and A.P. Anderson. Algorithm Synthesis: A Comparative Study. Springer-Verlag, 1989.
M. Stickel, R. Waldinger, M. Lowry, T. Pressburger, and I. Underwood. Deductive composition of astronomical software from subroutine libraries. In A. Bundy (ed), Proc. of CADE’94, pp. 341–355. LNCS 814. Springer-Verlag, 1994.
S.-Å. Tärnlund. An axiomatic data base theory. In H. Gallaire and J. Minker (eds), Logic and Databases, pp. 259–289. Plenum Press, 1978.
R.J. Waldinger and R.C.T. Lee. ProW: A step toward automatic program writing. Proc. of IJCAI’69, pp. 241–252.
G. Wiggins. Synthesis and transformation of logic programs in the whelk proof development system. In K. Apt (ed), Proc. of the JICSLP’92, pp. 351–365. The MIT Press, 1992.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Flener, P. (2002). Achievements and Prospects of Program Synthesis. In: Kakas, A.C., Sadri, F. (eds) Computational Logic: Logic Programming and Beyond. Lecture Notes in Computer Science(), vol 2407. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45628-7_13
Download citation
DOI: https://doi.org/10.1007/3-540-45628-7_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43959-2
Online ISBN: 978-3-540-45628-5
eBook Packages: Springer Book Archive