A Source-To-Source Architecture for User-Defined Optimizations

  • Markus Schordan
  • Dan Quinlan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2789)


We present an architecture for the specification of source-to-source transformations. New source code can be specified as source-fragments. The translation of source-fragments to the intermediate representation is accomplished by invoking the frontend. For any inserted fragment we can guarantee that it is typed correctly. If no error is reported on inserted fragments, the whole program can always be compiled without errors. Based on a given abstract attribute grammar the user can specify transformations as semantic actions and can combine the computation of attributes with restructure operations on the intermediate representation.


Attribute Evaluation Intermediate Representation Semantic Action Concrete Syntax Abstract Syntax Tree 
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.
    Quinlan, D., Miller, B., Philip, B., Schordan, M.: Treating a user-defined parallel library as a domain-specific language. In: 16th International Parallel and Distributed Processing Symposium (IPDPS, IPPS, SPDP), pp. 105–114. IEEE, Los Alamitos (2002)CrossRefGoogle Scholar
  2. 2.
    Quinlan, D., Schordan, M., Miller, B., Kowarschik, M.: Parallel object-oriented framework optimization. Concurrency: Practice and Experience (to appear)Google Scholar
  3. 3.
    Edison Design Group,
  4. 4.
    Moessenboeck, H.: Coco/R - A generator for production quality compilers. LNCS, vol. 477. Springer, Heidelberg (1991)Google Scholar
  5. 5.
    Bodin, F., Beckman, P., Gannon, D., Gotwals, J., Narayana, S., Srinivas, S., Winnicka, B.: Sage++: An object-oriented toolkit and class library for building fortran and C++ restructuring tools. In: Proceedings. OONSKI 1994, Oregon (1994)Google Scholar
  6. 6.
    Broom, B., Cooper, K., Dongarra, J., Fowler, R., Gannon, D., Johnsson, L., Kennedy, K., Mellor-Crummey, J., Torczon, L.: Telescoping languages: A strategy for automatic generation of scientific problem-solving systems from annotated libraries. Journal of Parallel and Distributed Computing (2000)Google Scholar
  7. 7.
    Guyer, S.Z., Liri, C.: An annotation language for optimizing software libraries. In: Proceedings of the 2nd Conference on Domain-Specific Languages. USENIX Association, Berkeley, CA, October 3–5, pp. 39–52 (1999)Google Scholar
  8. 8.
    Menon, V., Pingali, K.: High-level semantic optimization of numerical codes. In: Conference Proceedings of the 1999 International Conference on Supercomputing. ACM SIGARCH, Rhodes, Greece, June 20–25, pp. 434–443 (1999)Google Scholar
  9. 9.
    van Eijk, P., Belinfante, A., Eertink, H., Albas, H.: The term processor Kimwitu. In: Brinksma, E. (ed.) TACAS 1997. LNCS, vol. 1217, pp. 96–111. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  10. 10.
    Perry, N.: A definition of the codedom abstract language (2002),

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Markus Schordan
    • 1
  • Dan Quinlan
    • 1
  1. 1.Lawrence Livermore National LaboratoryUSA

Personalised recommendations