A New Control Structure for Transformation-Based Generators

  • Ted J. Biggerstaff
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1844)


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.


Search Space Control Structure Partial Evaluation Loop Body Reusable Component 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Batory, D., Singhal, V., Sirkin, M., Thomas, J.: Scalable Software Libraries. In: Symposium on the Foundations of Software Engineering, Los Angeles, California (1993)Google Scholar
  2. 2.
    Baxter, I.D.: Design Maintenance Systems. Communications of the ACM 55(4), 73–89 (1992)CrossRefGoogle Scholar
  3. 3.
    Biggerstaff, T.J.: Fixing Some Transformation Problems. In: Automated Software Engineering Conference, Cocoa Beach, Florida (1999)Google Scholar
  4. 4.
    Biggerstaff, T.J.: Anticipatory Optimization in Domain Specific Translation. In: International Conference on Software Reuse, Victoria, B.C., Canada, pp. 124–133 (1998)Google Scholar
  5. 5.
    Biggerstaff, T.J.: Composite Folding in Anticipatory Optimization. Microsoft Research Technical Report MSR-TR-98-22 (1998)Google Scholar
  6. 6.
    Biggerstaff, T.J.: Pattern Matching for Program Generation: A User Manual. Microsoft Research Technical Report MSR-TR-98-55 (1998)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    Wadler, P.: Deforestation: Transforming Programs to Eliminate Trees. Journal of Theoretical Computer Science 73, 231–248 (1990)CrossRefMathSciNetzbMATHGoogle Scholar
  14. 14.
    Wile, D.S.: Popart: Producer of Parsers and Related Tools. USC/Information Sciences Institute Technical Report, Marina del Rey, California (1994),
  15. 15.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Ted J. Biggerstaff

There are no affiliations available

Personalised recommendations