Abstract
A serious problem of most transformation-based generators is that they are trying to achieve three mutually antagonistic goals simultaneously: 1) deeply factored operators and operands to gain the combinatorial programming leverage provided by composition, 2) high performance code in the generated program, and 3) small (i.e., practical) generation search spaces. The hypothesis of this paper is that current generator control structures are inadequate and a new control structure is required. To explore architectural variations needed to address this quandary, I have implemented a generator in Common LISP. It is called the Anticipatory Optimization Generator (AOG) because it allows programmers to anticipate optimization opportunities and to prepare an abstract, distributed plan that attempts to achieve them. The AOG system introduces a new control structure that allows differing kinds of knowledge (e.g., optimization knowledge) to be anticipated, placed where it will be needed, and triggered when the time is right for its use.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Batory, D., Singhal, V., Sirkin, M., Thomas, J.: Scalable Software Libraries. In: Symposium on the Foundations of Software Engineering, Los Angeles, California (1993)
Baxter, I.D.: Design Maintenance Systems. Communications of the ACM 55(4), 73–89 (1992)
Biggerstaff, T.J.: Fixing Some Transformation Problems. In: Automated Software Engineering Conference, Cocoa Beach, Florida (1999)
Biggerstaff, T.J.: Anticipatory Optimization in Domain Specific Translation. In: International Conference on Software Reuse, Victoria, B.C., Canada, pp. 124–133 (1998)
Biggerstaff, T.J.: Composite Folding in Anticipatory Optimization. Microsoft Research Technical Report MSR-TR-98-22 (1998)
Biggerstaff, T.J.: Pattern Matching for Program Generation: A User Manual. Microsoft Research Technical Report MSR-TR-98-55 (1998)
Boyle, J.M.: Abstract Programming and Program Transformation – An Approach to Reusing Programs. In: Biggerstaff, T., Perlis, A. (eds.) Software Reusability, pp. 361–413. Addison-Wesley/ACM Press (1989)
Crew, R.F.: ASTLOG: A Language for Examining Abstract Syntax Trees. In: Proceedings of the USENIX Conference on Domain-Specific Languages, Santa Barbara, California (1997)
Kiczales, G., Lamping, J., Mendhekar, A., Maede, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect Oriented Programming. Tech. Report SPL97-08 P9710042, Xerox PARC (1997)
Neighbors, J.M.: Draco: A Method for Engineering Reusable Software Systems. In: Biggerstaff, T., Perlis, A. (eds.) Software Reusability, pp. 295–319. Addison-Wesley/ACM Press (1989)
Smith, D.R.: KIDS-A Knowledge-Based Software Development System. In: Lowry, M., McCartney, R. (eds.) Automating Software Design, pp. 483–514. AAAI/MIT Press (1991)
Srinivas, Y.V.: Refinement of Parameterized Algebraic Specifications. In: Bird, R., Meertens, L. (eds.) Proceedings of a Workshop on Algorithmic Languages and Calculii. A New Control Structure for Transformation-Based Generators 19, pp. 164–186. Alsac FR, Chapman and Hill (1997)
Wadler, P.: Deforestation: Transforming Programs to Eliminate Trees. Journal of Theoretical Computer Science 73, 231–248 (1990)
Wile, D.S.: Popart: Producer of Parsers and Related Tools. USC/Information Sciences Institute Technical Report, Marina del Rey, California (1994), http://www.isi.edu/software-sciences/wile/Popart/popart.html
Wile, D.S.: Toward a Calculus for Abstract Syntax Trees. In: Bird, R., Meertens, L. (eds.) Proceedings of a Workshop on Algorithmic Languages and Calculii, pp. 324–352. Chapman and Hill, Alsac FR (1997)
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Biggerstaff, T.J. (2000). A New Control Structure for Transformation-Based Generators. In: Frakes, W.B. (eds) Software Reuse: Advances in Software Reusability. ICSR 2000. Lecture Notes in Computer Science, vol 1844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-44995-9_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-44995-9_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67696-6
Online ISBN: 978-3-540-44995-9
eBook Packages: Springer Book Archive