Skip to main content

Cetus – An Extensible Compiler Infrastructure for Source-to-Source Transformation

  • Conference paper

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

Abstract

Cetus is a compiler infrastructure for the source-to-source transformation of programs. We created Cetus out of the need for a compiler research environment that facilitates the development of interprocedural analysis and parallelization techniques for C, C++, and Java programs. We will describe our rationale for creating a new compiler infrastructure and give an overview of the Cetus architecture. The design is intended to be extensible for multiple languages and will become more flexible as we incorporate feedback from any difficulties we encounter introducing other languages. We will characterize Cetus’ runtime behavior of parsing and IR generation in terms of execution time, memory usage, and parallel speedup of parsing, as well as motivate its usefulness through examples of projects that use Cetus. We will then compare these results with those of the Polaris Fortran translator.

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. Portland Group Homepage, http://nci.pgroup.com

  2. SUIF Homepage, http://suif.stanford.edu

  3. Appel, A., Davidson, J., Ramsey, N.: The Zephyr Compiler Infrastructure (1998)

    Google Scholar 

  4. Banerjee, P., Chandy, J.A., Gupta, M., et al.: The PARADIGM Compiler for Distributed-Memory Multicomputers. IEEE Computer 28(10), 37–47 (1995)

    Article  Google Scholar 

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

    Google Scholar 

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

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

  8. Fischer, C.N., Le Blanc Jr., R.J.: Crafting a Compiler. Benjamin/ Cummings (1988)

    Google Scholar 

  9. Free Software Foundation. GNU Bison 1.875a Manual (January 2003)

    Google Scholar 

  10. Free Software Foundation. GNU Flex 2.5.31 Manual (March 2003)

    Google Scholar 

  11. Heine, D.L., Lam, M.S.: A Practical Flow-Sensitive and Context- Sensitive C and C++ Memory Leak Detector. PLDI (2003)

    Google Scholar 

  12. Irwin, W., Churcher, N.: A Generated Parser of C++ (2001)

    Google Scholar 

  13. Johnson, S.C.: Yacc: Yet Another Compiler Compiler. In: UNIX Programmer’s Manual, vol. 2, pp. 353–387. Holt, Rinehart Winston, New York, NY, USA (1979)

    Google Scholar 

  14. Lesk, M., Schmidt, E.: Lex-A Lexical Analyzer Generator. Technical report, AT&T Bell Laboratories (1975)

    Google Scholar 

  15. Min, S.-J., Kim, S.W., Voss, M., Lee, S.-I., Eigenmann, R.: Portable compilers for openmp. In: Eigenmann, R., Voss, M.J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 11–19. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  16. Min, S.-J., Basumallik, A., Eigenmann, R.: Supporting Realistic OpenMP Applications on a Commodity Cluster of Workstations. In: Voss, M.J. (ed.) WOMPAT 2003. LNCS, vol. 2716, pp. 170–179. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  17. Nguyen, T.N., Gu, J., Li, Z.: An Interprocedural Parallelizing Compiler and Its Support for Memory Hierarchy Research. In: Huang, C.-H., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1995. LNCS, vol. 1033. Springer, Heidelberg (1995)

    Google Scholar 

  18. Parr, T.J., Quong, R.W.: ANTLR: A Predicated-LL(k) Parser Generator. Software - Practice and Experience 25(7), 789–810 (1995)

    Article  Google Scholar 

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

  20. Pottenger, B., Eigenmann, R.: Idiom Recognition in the Polaris Parallelizing Compiler. In: International Conference on Supercomputing (1995)

    Google Scholar 

  21. Stallman, R.M.: GNU Compiler Collection Internals. Free Software Foundation (December 2002)

    Google Scholar 

  22. Stallman, R.M.: Using and Porting the GNU Compiler Collection. Free Software Foundation (December 2002)

    Google Scholar 

  23. Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison- Wesley, Reading (1997)

    MATH  Google Scholar 

  24. Tomita, M.: Efficient Parsing for Natural Language. Kluwer Academic Publishers, Dordrecht (1986)

    Book  Google Scholar 

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

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lee, SI., Johnson, T.A., Eigenmann, R. (2004). Cetus – An Extensible Compiler Infrastructure for Source-to-Source Transformation. In: Rauchwerger, L. (eds) Languages and Compilers for Parallel Computing. LCPC 2003. Lecture Notes in Computer Science, vol 2958. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24644-2_35

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24644-2_35

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21199-0

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics