Skip to main content

Automatic Program Synthesis and Reuse

  • Chapter
  • 89 Accesses

Part of the book series: Software Science and Engineering ((SSEN))

Abstract

Given a requirements specification, the goal of automatic program synthesis is to derive, or synthesize, an executable program whose functionalities meet the specification. If we are willing to sacrifice performance, a requirements specification may already be executable. For example a requirements specification in first-order logic can be proved by a theorem prover given a standard set of axioms of mathematics, where the proof procedure essentially constructs a program. However this process could be very inefficient. Automatic program synthesis with reasonable efficiency has been the core of software engineering for a long time.1,2 Unfortunately most of the approaches proposed are restrictive because they work only for small examples. The major difficulty of program synthesis lies in the fact that it has to derive the control structure of a program—hopefully efficient—a task that is difficult even for a programmer.

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. Balzer, R. IEEE Transactions on Software Engineering SE-11:11, 1257–1268 (Nov. 1985).

    Article  Google Scholar 

  2. Barstow, D. “Artificial intelligence and software engineering.” Proc. of 9th International Conference on Software Engineering (1987), pp. 200–211.

    Google Scholar 

  3. Manna, Z., and Waldinger, R. ACM Transactions on Programming Languages and Systems 2.1, 90–121 (1980).

    Article  Google Scholar 

  4. Dershowitz, N. In Machine learning: An artificial intelligence approach, vol. 2 (Michalski, R., Carbonell, J., and Mitchell, T., eds.) (Morgan Kaufmann, San Mateo, CA, 1986), pp. 395–423.

    Google Scholar 

  5. Barstow, D. In Machine intelligence, vol. 10 (Hayes, I. E., Michie, D., and Pao, Y.-H., eds.) (Wiley, New York, 1982).

    Google Scholar 

  6. Smith, D. R. Artificial Intelligence 27:1, 43–96 (1985).

    Article  MathSciNet  MATH  Google Scholar 

  7. Broy, M., and Pepper, P. IEEE Transactions on Software Engineering 7:1, 14–22 (Jan. 1981).

    Article  MathSciNet  MATH  Google Scholar 

  8. Feather, M. Survey and classification of some program transformation approaches and techniques.” Working Conference on Program Specification and Transformation (Tolz, Federal Republic of Germany, Apr. 1986).

    Google Scholar 

  9. Partsch, H., and Steinbruggen, R. ACM Computing Surveys 15:3, 199–236 (Sept. 1983).

    Article  MathSciNet  Google Scholar 

  10. Bauer, F., Bray, M., Gnatz, R., Hesse, W., Krieg-Bruckner, B., Partsch, H., Pepper, P., and Wossner, H. ACM SIGPLAN Notices 13:12, 15–24 (1978).

    Article  Google Scholar 

  11. Smith, D., Kotik, G., and Westfold, S. IEEE Transactions on Software Engineering SE-11:11, 1278–1295 (Nov. 1985).

    Article  Google Scholar 

  12. Manna, Z., and Waldinger, R. IEEE Transactions in Software Engineering SE-5:4, 294–328 (July 1979).

    Article  Google Scholar 

  13. Pressburger, T., and Smith, D. In Software engineering environments (Brereton, P., ed.) (Ellis Horwood, England, 1988).

    Google Scholar 

  14. Boyle, J., and Muralidharan, M. IEEE Transactions on Software Engineering SE-10:5, 574–588 (Sept. 1984).

    Article  Google Scholar 

  15. Cheatham, T. IEEE Transactions on Software Engineering SE-10:5, 589–594 (Sept. 1984).

    Article  Google Scholar 

  16. CIP Language Group. Lecture notes in computer science, vol. 1: Munich project CIP (Spring-Verlag, New York, 1984).

    Google Scholar 

  17. Bauer, F., Moller, B., Partsch, H., and Pepper, P. IEEE Transactions on Software Engineering 15:2, 165–180 (Feb. 1989).

    Article  MathSciNet  MATH  Google Scholar 

  18. Schach, S. R. Software engineering (Aksen, Homewood, IL, 1990).

    Google Scholar 

  19. Stroustrup, B. C++ programming language, 2d ed. (Addison Wesley, Reading, MA, 1991).

    Google Scholar 

  20. Dershowitz, N. ACM Transactions on Programming Languages and Systems 7:3 (July 1985) 446–477.

    Article  MATH  Google Scholar 

  21. Meyer, B. IEEE Software, 50–64 (Mar. 1987).

    Google Scholar 

  22. Prieto-Diaz, R., and Freeman, P. IEEE Software 4, 6 (Jan. 1987).

    Article  Google Scholar 

  23. Biggerstaff, T. J., and Perlis, A. J., eds. IEEE Transactions on Software Engineering SE-10:5 (Sept. 1984) 474–477.

    Google Scholar 

  24. Burton, B., Aragon, R. W., Bailey, S., Koehler, K. D., and Mayes, L. A. IEEE Software 4:4, 25 (July 1987).

    Article  Google Scholar 

  25. Estublier, B. “Experience with a database of programs. Second Software Engineering Symposium on Practical Software Development Environments (Palo Alto, CA, Dec. 1986), pp. 84–91.

    Google Scholar 

  26. Kaiser, G. E., and Garian, D. IEEE Software, 4:3, 17–24 (July 1987).

    Article  Google Scholar 

  27. Wood, M., and Sommerville, I. In Software Engineering Environments (Brereton, P., ed. (Ellis Horwood, England, 1988).

    Google Scholar 

  28. Dillistone, B. In Software engineering environments (Brereton, P., ed.) (Ellis Horwood, England, 1988).

    Google Scholar 

  29. Nishida, F., Takamatsu, S., Fujita, Y., and Tani, T. IEEE Transactions on Software Engineering 17:9, 853–871 (Sept. 1991).

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer Science+Business Media New York

About this chapter

Cite this chapter

Sheu, P.CY. (1997). Automatic Program Synthesis and Reuse. In: Software Engineering and Environment. Software Science and Engineering. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-5907-8_8

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-5907-8_8

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-7710-8

  • Online ISBN: 978-1-4615-5907-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics