Skip to main content

A New Control Structure for Transformation-Based Generators

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1844))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Baxter, I.D.: Design Maintenance Systems. Communications of the ACM 55(4), 73–89 (1992)

    Article  Google Scholar 

  3. Biggerstaff, T.J.: Fixing Some Transformation Problems. In: Automated Software Engineering Conference, Cocoa Beach, Florida (1999)

    Google Scholar 

  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. Biggerstaff, T.J.: Composite Folding in Anticipatory Optimization. Microsoft Research Technical Report MSR-TR-98-22 (1998)

    Google Scholar 

  6. Biggerstaff, T.J.: Pattern Matching for Program Generation: A User Manual. Microsoft Research Technical Report MSR-TR-98-55 (1998)

    Google Scholar 

  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. 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. 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. 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. 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. 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. Wadler, P.: Deforestation: Transforming Programs to Eliminate Trees. Journal of Theoretical Computer Science 73, 231–248 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  14. 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

  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 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics