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
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
Balzer, R. IEEE Transactions on Software Engineering SE-11:11, 1257–1268 (Nov. 1985).
Barstow, D. “Artificial intelligence and software engineering.” Proc. of 9th International Conference on Software Engineering (1987), pp. 200–211.
Manna, Z., and Waldinger, R. ACM Transactions on Programming Languages and Systems 2.1, 90–121 (1980).
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.
Barstow, D. In Machine intelligence, vol. 10 (Hayes, I. E., Michie, D., and Pao, Y.-H., eds.) (Wiley, New York, 1982).
Smith, D. R. Artificial Intelligence 27:1, 43–96 (1985).
Broy, M., and Pepper, P. IEEE Transactions on Software Engineering 7:1, 14–22 (Jan. 1981).
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).
Partsch, H., and Steinbruggen, R. ACM Computing Surveys 15:3, 199–236 (Sept. 1983).
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).
Smith, D., Kotik, G., and Westfold, S. IEEE Transactions on Software Engineering SE-11:11, 1278–1295 (Nov. 1985).
Manna, Z., and Waldinger, R. IEEE Transactions in Software Engineering SE-5:4, 294–328 (July 1979).
Pressburger, T., and Smith, D. In Software engineering environments (Brereton, P., ed.) (Ellis Horwood, England, 1988).
Boyle, J., and Muralidharan, M. IEEE Transactions on Software Engineering SE-10:5, 574–588 (Sept. 1984).
Cheatham, T. IEEE Transactions on Software Engineering SE-10:5, 589–594 (Sept. 1984).
CIP Language Group. Lecture notes in computer science, vol. 1: Munich project CIP (Spring-Verlag, New York, 1984).
Bauer, F., Moller, B., Partsch, H., and Pepper, P. IEEE Transactions on Software Engineering 15:2, 165–180 (Feb. 1989).
Schach, S. R. Software engineering (Aksen, Homewood, IL, 1990).
Stroustrup, B. C++ programming language, 2d ed. (Addison Wesley, Reading, MA, 1991).
Dershowitz, N. ACM Transactions on Programming Languages and Systems 7:3 (July 1985) 446–477.
Meyer, B. IEEE Software, 50–64 (Mar. 1987).
Prieto-Diaz, R., and Freeman, P. IEEE Software 4, 6 (Jan. 1987).
Biggerstaff, T. J., and Perlis, A. J., eds. IEEE Transactions on Software Engineering SE-10:5 (Sept. 1984) 474–477.
Burton, B., Aragon, R. W., Bailey, S., Koehler, K. D., and Mayes, L. A. IEEE Software 4:4, 25 (July 1987).
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.
Kaiser, G. E., and Garian, D. IEEE Software, 4:3, 17–24 (July 1987).
Wood, M., and Sommerville, I. In Software Engineering Environments (Brereton, P., ed. (Ellis Horwood, England, 1988).
Dillistone, B. In Software engineering environments (Brereton, P., ed.) (Ellis Horwood, England, 1988).
Nishida, F., Takamatsu, S., Fujita, Y., and Tani, T. IEEE Transactions on Software Engineering 17:9, 853–871 (Sept. 1991).
Author information
Authors and Affiliations
Rights 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