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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Portland Group Homepage, http://nci.pgroup.com
SUIF Homepage, http://suif.stanford.edu
Appel, A., Davidson, J., Ramsey, N.: The Zephyr Compiler Infrastructure (1998)
Banerjee, P., Chandy, J.A., Gupta, M., et al.: The PARADIGM Compiler for Distributed-Memory Multicomputers. IEEE Computer 28(10), 37–47 (1995)
Blume, W., Eigenmann, R., et al.: Restructuring Programs for High-Speed Computers with Polaris. In: ICPP Workshop, pp. 149–161 (1996)
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)
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)
Fischer, C.N., Le Blanc Jr., R.J.: Crafting a Compiler. Benjamin/ Cummings (1988)
Free Software Foundation. GNU Bison 1.875a Manual (January 2003)
Free Software Foundation. GNU Flex 2.5.31 Manual (March 2003)
Heine, D.L., Lam, M.S.: A Practical Flow-Sensitive and Context- Sensitive C and C++ Memory Leak Detector. PLDI (2003)
Irwin, W., Churcher, N.: A Generated Parser of C++ (2001)
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)
Lesk, M., Schmidt, E.: Lex-A Lexical Analyzer Generator. Technical report, AT&T Bell Laboratories (1975)
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)
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)
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)
Parr, T.J., Quong, R.W.: ANTLR: A Predicated-LL(k) Parser Generator. Software - Practice and Experience 25(7), 789–810 (1995)
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)
Pottenger, B., Eigenmann, R.: Idiom Recognition in the Polaris Parallelizing Compiler. In: International Conference on Supercomputing (1995)
Stallman, R.M.: GNU Compiler Collection Internals. Free Software Foundation (December 2002)
Stallman, R.M.: Using and Porting the GNU Compiler Collection. Free Software Foundation (December 2002)
Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison- Wesley, Reading (1997)
Tomita, M.: Efficient Parsing for Natural Language. Kluwer Academic Publishers, Dordrecht (1986)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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