Abstract
We have successfully demonstrated an automated transformation system that compiles practical software modules from the semantic specification of a domain-specific application design language. The integrated suite of transformation and translation tools represents a new level of design automation for software. Although there is much more that can be done to further improve the performance of generated code, the prototype system demonstrates the feasibility of this approach.
The implementation of type-parametric theorems as transformation tactics for HOT has not been done before. It remains to be seen whether algebra-specific transformations can be incorporated in the same tool by referring to a database of algebraic laws. In the current system, algebra-specific transformations are performed by term-rewriting, which is an entirely different paradigm.
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.
The research reported here has been sponsored by the USAF Materiel Command.
Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
J. M. Bell and J. Hook. Defunctionalization of typed programs. Technical report, Department of Computer Science and Engineering, Oregon Graduate Institute, Feb. 1994.
F. Bellegarde. Program transformation and rewriting. In Proceedings of the fourth conference on Rewriting Techniques and Applications, vol. 488 of LNCS, pages 226–239, Berlin, 1991. Springer-Verlag.
F. Bellegarde. A transformation system combining partial evaluation with term rewriting. In Higher Order Algebra, Logic and Term Rewriting (HOA '93), vol. 816 of Lecture Notes in Computer Science, pages 40–58. Springer-Verlag, Sept. 1993.
F. Bellegarde. Termination issues in automated syntheses. Submitted to RTA95, Sept. 1994.
R. S. Bird. An introduction to the theory of lists. In M. Broy, editor, Logic of Programming and Calculi of Discrete Design, vol. 36 of NATO Series F. Springer-Verlag, 1986.
W. Burge. Recursive Programming Techniques. Addison-Wesley, 1975.
W. Chin and J. Darlington. Higher-order removal: A modular approach. Unpublished work, 1993.
W.-N. Chin. Safe fusion of functional expressions. In Proc. of 1992 ACM Conf. on Lisp and Functional Programming, pages 11–20, June 1992.
J. Darlington and R. Burstall. A system which automatically improves programs. Acta Informatica, 6(1):41–60, 1976.
N. Dershowitz. Synthesis by completion. In Proceedings of the Ninth International Joint Conference on Artificial Intelligence, pages 208–214, Los Angeles, 1985.
N. Dershowitz. Completion and its applications. In Resolution of Equations in Algebraic Structures. Academic Press, New York, 1988.
M. M. Fokkinga. Law and Order in Algorithmics. PhD thesis, University of Twente, Twente, The Netherlands, Feb. 1992.
T. Johnsson. Lambda lifting: transforming programs to recursive equations. In J.-P. Jouannaud, editor, Functiona Programming Languages and Computer Architecture, vol. 201 of Lecture Notes in Computer Science, pages 190–203. Springer Verlag, 1985.
R. B. Kieburtz and J. Lewis. Algebraic Design Language-Preliminary definition. Technical report, Pacific Software Research Center, Oregon Graduate Institute of Science & Technology, Jan. 1994.
G. Malcolm. Homomorphisms and promotability. In J. L. A. van de Snepscheut, editor, Mathematics of Program Construction, vol. 375 of Lecture Notes in Computer Science, pages 335–347. Springer-Verlag, June 1989.
L. Meertens. Algorithmics-towards programming as a mathematical activity. In Proc. of the CWI Symbposium on Mathematics and Computer Science, pages 289–334. North-Holland, 1986.
E. Meijer, M. Fokkinga, and R. Paterson. Functional programming with bananas, lenses, envelopes and barbed wire. In Proc. of 5th ACM Conf. on Functional Programming Languages and Computer Architecture, vol. 523 of Lecture Notes in Computer Science, pages 124–144. Springer-Verlag, Aug. 1991.
R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, Cambridge, Massachusetts, 1990.
P. D. Mosses. Sis-semantics implementation system: reference manual and user guide. Technical Report DAIMI MD-30, Computer Science Department, University of Aarhus, 1979.
J. C. Reynolds. Definitional interpreters for higher-order programming languages. In ACM National Conference, pages 717–740. ACM, 1972.
T. Sheard. Optimizing algebraic programs. Technical Report OGI-CSE-94-004, Oregon Graduate Institute of Science & Technology, Jan. 1994.
T. Sheard and L. Fegaras. A fold for all seasons. In Proceedings of the conference on Functional Programming and Computer Architecture, Copenhagen, June 1993.
D. Volpano and R. B. Kieburtz. Software templates. In Proceedings Eighth International Conference on Software Engineering, pages 55–60. IEEE Computer Society, Aug. 1985.
D. Volpano and R. B. Kieburtz. The templates approach to software reuse. In T. J. Biggersstaff and A. J. Perlis, editors, Software Reusability, pages 247–255. ACM Press, 1989.
P. Wadler. Deforestation: Transforming programs to eliminate trees. In 2nd European Symposium on Programming ESOP'88, vol. 300 of LNCS. pages 344–358, Springer-Verlag, 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kieburtz, R.B. et al. (1995). Calculating software generators from solution specifications. In: Mosses, P.D., Nielsen, M., Schwartzbach, M.I. (eds) TAPSOFT '95: Theory and Practice of Software Development. CAAP 1995. Lecture Notes in Computer Science, vol 915. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-59293-8_219
Download citation
DOI: https://doi.org/10.1007/3-540-59293-8_219
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59293-8
Online ISBN: 978-3-540-49233-7
eBook Packages: Springer Book Archive