Skip to main content

Experiences in Using Cetus for Source-to-Source Transformations

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

Abstract

Cetus is a compiler infrastructure for the source-to-source transformation of programs. Since its creation nearly three years ago, it has grown to over 12,000 lines of Java code, been made available publically on the web, and become a basis for several research projects. We discuss our experience using Cetus for a selection of these research projects. The focus of this paper is not the projects themselves, but rather how Cetus made these projects possible, how the needs of these projects influenced the development of Cetus, and the solutions we applied to problems we encountered with the infrastructure. We believe the research community can benefit from such a discussion, as shown by the strong interest in the mini-workshop on compiler research infrastructures where some of this information was first presented.

This material is based upon work supported in part by the National Science Foundation under Grant No. 9703180, 9975275, 9986020, and 9974976.

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. Banerjee, P., Chandy, J.A., Gupta, M., et al.: The PARADIGM Compiler for Distributed-Memory Multicomputers. IEEE Computer 28(10), 37–47 (1995)

    Google Scholar 

  2. Blume, W., Doallo, R., Eigenmann, R., et al.: Advanced Program Restructuring for High-Performance Computers with Polaris. IEEE Computer, 78–82 (December 1996)

    Google Scholar 

  3. Blume, W., Eigenmann, R., et al.: Restructuring Programs for High-Speed Computers with Polaris. In: ICPP Workshop, pp. 149–161 (1996)

    Google Scholar 

  4. Cook, R.P., LeBlanc, T.J.: A Symbol Table Abstraction to Implement Languages with Explicit Scope Control. IEEE Transactions on Software Engineering 9(1), 8–12 (1983)

    Article  Google Scholar 

  5. Faigin, K.A., Weatherford, S.A., Hoeflinger, J.P., Padua, D.A., Petersen, P.M.: The Polaris Internal Representation. International Journal of Parallel Programming 22(5), 553–586 (1994)

    Article  Google Scholar 

  6. Fischer, C.N., LeBlanc Jr., R.J.: Crafting a Compiler. Benjamin/Cummings (1988)

    Google Scholar 

  7. Forum, O.: OpenMP: A Proposed Industry Standard API for Shared Memory Programming. Technical report (October 1997)

    Google Scholar 

  8. Havlak, P., Kennedy, K.: An implementation of interprocedural bounded regular section analysis. IEEE Transactions on Parallel and Distributed Systems 2(3), 350–360 (1991)

    Article  Google Scholar 

  9. Lee, G.C., Midkiff, S.P.: Ninja 2: Towards fast, portable, numerical Java. In: Workshop on Compilers for Parallel Computing (July 2004)

    Google Scholar 

  10. Lee, S.-I., Johnson, T.A., Eigenmann, R.: Cetus - An Extensible Compiler Infrastructure for Source-to-Source Transformation. In: 16th International Workshop on Languages and Compilers for Parallel Computing (LCPC), October 2003, pp. 539–553 (2003)

    Google Scholar 

  11. Min, S.-J., Basumallik, A., Eigenmann, R.: Optimizing OpenMP programs on Software Distributed Shared Memory Systems. International Journal of Parallel Programming 31(3), 225–249 (2003)

    Article  MATH  Google Scholar 

  12. Nguyen, T.N., Gu, J., Li, Z.: An Interprocedural Parallelizing Compiler and Its Support for Memory Hierarchy Research. In: Proceedings of the International Workshop on Languages and Compilers for Parallel Computing (LCPC), pp. 96–110 (1995)

    Google Scholar 

  13. Polychronopoulos, C., Girkar, M.B., et al.: The Structure of Parafrase-2: An Advanced Parallelizing Compiler for C and Fortran. In: Languages and Compilers for Parallel Computing. MIT Press, Cambridge (1990)

    Google Scholar 

  14. Serrano, M.J., Bordawekar, R., Midkiff, S.P., Gupta, M.: Quicksilver: a Quasi-Static Compiler for Java. In: Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 66–82 (2000)

    Google Scholar 

  15. Sun Microsystems. The Java Virtual Machine Specification

    Google Scholar 

  16. Wilson, R.P., French, R.S., et al.: SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compilers. SIGPLAN Notices 29(12), 31–37 (1994)

    Article  Google Scholar 

  17. Zhou, P., Liu, W., Fei, L., Lu, S., Qin, F., Zhou, Y., Midkiff, S., Torrellas, J.: AccMon: Automatically detecting memory-related bugs via program counter-based invariants. In: Proceedings of the 37th Annual IEEE/ACM International Symposium on Micro-architecture, MICRO 2004 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Johnson, T.A. et al. (2005). Experiences in Using Cetus for Source-to-Source Transformations. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_1

Download citation

  • DOI: https://doi.org/10.1007/11532378_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28009-5

  • Online ISBN: 978-3-540-31813-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics