Abstract
This paper describes how simulated annealing can be used to synthesize software implementations. Simulated annealing is a strategy for solving combinatorial optimization problems. The challenge here is to effectively cast the many implementation decisions (e.g., data structures, algorithms, data flow) inherent in implementing software systems as an optimization problem. This paper presents RT-Syn, a software synthesis architecture targeting real-time software. Real-time software is characterized by a set of tasks, each with individual hard timing deadlines. RT-Syn represents implementation decisions in terms of their timing and space costs and then uses simulated annealing to minimize the cost of the implementation until the individual hard timing deadlines are met. Producing a satisficing implementation rather than an absolute optimal implementation results in tractable annealing run times. We present experimental results covering the synthesis of real-time software tasks that meet the desired execution characteristics. These results illustrate the effectiveness of the simulated annealing approach in searching the software implementation space and the belief that simulated annealing approaches have much to offer to automated software engineering.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Barstow, D. 1979. An experiment in knowledge-based automatic programming.Artificial Intelligence, 12:73–119.
Biggerstaff, T. J. 1991.Software Reusability Promise: Hyperbole and Reality. STP-MT-49-91, Microelectronics and Computer Technology Corporation.
Graves, H. 1991. Lockheed environment for automatic programming. InKnowledge-Based Software Engineering, ACM, September.
Kirkpatrick, S., Gelatt, C. D., and Vecchi, M. P. 1983. Optimization by simulated annealing.Science, 220(4598):671–680.
Kant, E. 1983. On the efficient synthesis of efficient programs.Artificial Intelligence, 20(3):253–305.
Setliff, D. E., Kant, E., and Cain, J. T. 1993. Practical software synthesis.IEEE Software, 10(3):6–10.
Liu, C. L., and Layland, J. W. 1973. Scheduling algorithms for multiprogramming in a hard real-time environment.JACM, 20(1):46–61.
Lowry, M., and McCartney, R., editors. 1991.Automatic Software Design. AAAI Press.
Lehoczky, J. P., and Sha, L. 1986.The Average Case Behavior of the Rate-Monotonic Scheduling Algorithm. Technical Report, Department of Statistics, Carnegie Mellon University.
Kant, E., Daube, F., MacGregor, W., and Wald, J. 1991. Automating software development. Chapter 8 inAutomatic Synthesis of Finite Difference Programs. AAAI Press.
Newell, A., and Simon, H. 1972.Human Problem Solving. Englewood Cliffs, NJ: Prentice-Hall.
Puranik, V. 1993.An Algorithm Database System for Domain-Specific Software Synthesis, Department of Electrical Engineering, University of Pittsburgh, Pittsburgh, PA.
Rutenbar, R. A. 1989. Simulated annealing algorithms: An overview.IEEE Circuits and Devices, pp. 19–26.
Spivey, J. M. 1989.The Z Notation: A Reference Manual. London: Prentice Hall.
Setliff, D. E., and Rutenbar, R. A. 1990.Automatic Programming Applied to VLSI/CAD Software: A Case Study. Kluwer Academic Publishing.
Saab, Y. G., and Rao, V. B. 1991. Combinatorial optimization by stochastic evolution.IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, 10(4):525–535.
Setliff, D. E., and Rutenbar, R. A. 1991. On the feasibility of synthesizing CAD software from specifications: Generating maze router tools in ELF.IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 10(6):763–801.
Setliff, D. E., and Rutenbar, R. A. 1992. Knowledge representation and reasoning in a software synthesis architecture.IEEE Transactions on Software Engineering, 18(6):523–533.
Schonberg, E., Schwartz, J. T., and Sharir, M. 1981. An automatic technique for selection of data representations in SETL programs.ACM Transactions on Programming Languages and Systems, 3(2):126–143.
Strosnider, J. K. 1988.Highly Responsive Real-Time Token Rings. Ph.D. thesis, Carnegie Mellon University.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Smith, T.E., Setliff, D.E. Using simulated annealing to synthesize resource-bounded software. Autom Software Eng 1, 155–176 (1994). https://doi.org/10.1007/BF00872288
Issue Date:
DOI: https://doi.org/10.1007/BF00872288