ABSTRACT
The developers of high-performance scientific applications often work in complex computing environments that place heavy demands on program analysis tools. The developers need tools that interoperate, are portable across machine architectures, and provide source-level feedback. In this paper, we describe a tool framework, the Program Database Toolkit (PDT), that supports the development of program analysis tools meeting these requirements. PDT uses compile-time information to create a complete database of high-level program information that is structured for well-defined and uniform access by tools and applications. PDT's current applications make heavy use of advanced features of C++, in particular, templates. We describe the toolkit, focussing on its most important contribution-its handling of templates-as well as its use in existing applications.
References
- 1.J. S. Adamczyk and J. H. Spicer. Template Instantiation in the EDG C++ Front End. Edison Design Group Technical Report, 1995.Google Scholar
- 2.Advanced Computing Laboratory/LANL. ACL Research. http://www.acl.lanl.gov/research/, 1999.Google Scholar
- 3.Advanced Computing Laboratory/LANL. PDT: Program Database Toolkit. http:// www.acl.lanl.gov/pdtoolkit/, 1999.Google Scholar
- 4.Advanced Computing Laboratory/LANL. PDT: Program Database Toolkit. Supercomputing '99 flyer, Los Alamos National Laboratory Publication, LALP-99-204, November 1999.Google Scholar
- 5.Advanced Computing Laboratory/LANL. POOMA: Parallel Object-Oriented Methods and Applications. http://www.acl.lanl.gov/pooma/, 1999.Google Scholar
- 6.ASC X3. International Standard: Programming Languages - C++. ISO/IEC 14882. Information Technology Council (ITI), 1998.Google Scholar
- 7.J. S. Auerbach and J. R. Russell. The Concert Signature Representation: IDL as Intermediate Language. SIGPLAN Notices, vol. 29, no. 8, pp. 1-12, August 1994. Google Scholar
Digital Library
- 8.D. M. Beazley. SWIG: Simplified Wrapper and Interface Generator. http://www.swig.org/, 1998.Google Scholar
- 9.F. Bodin, P. Beckman, D. Gannon, S. Narayana, S. Srinivas, and B. Winnicka. Sage++: A Class Library for Building Fortran 90 and C++ Restructuring Tools. Proceedings OONSKI94, the Second Annual Object-Oriented Numerics Conference, pp. 122-138, April 1994.Google Scholar
- 10.R. E. Crew. ASTLOG: A Language for Examining Abstract Syntax Trees. Proceedings of the Conference on Domain-Specific Languages, pp. 229-242, October 1997. Google Scholar
Digital Library
- 11.A. Duncan, B. Cocosel, C. Iancu, H. Kienle, R. Rugina, U. Hoelzle, and M. Rinard. OSUIF: SUIF 2.0 with Objects. Second SUIF Compiler Workshop, August 1997.Google Scholar
- 12.Edison Design Group. Compiler Front Ends for the OEM Market. http://www.edg.com/, 1998- 1999.Google Scholar
- 13.Kuck & Associates, Inc. KAI. http:// www.kai.com/, 1999.Google Scholar
- 14.K. Lindlan, J. Cuny, A. D. Malony, S. Shende, and P. Beckman. An IL Converter and Program Database for Analysis Tools. Proceedings of 2nd SIGMETRICS Symposium on Parallel and Distributed Tools, p. 153, August 1998. Google Scholar
Digital Library
- 15.Mutek. Fortran 90 Front End Documentation. http://www.mutek.com/, 1999.Google Scholar
- 16.R. D. Rivenburgh, C. E. Rasmussen, K. A. Lindlan, B. Mohr, and P. H. Beckman. Automatic Generation of Perl Extensions to C++ and Fortran 90 Class Libraries. O'Reilly Open Source Software Convention, July 2000.Google Scholar
- 17.S. Shende, A.D. Malony, J. Cuny, K. Lindlan, P. Beckman, and S. Karmesin. Portable Profiling and Tracing for Parallel, Scientific Applications Using C++. Proceedings of 2nd SIGMETRICS Symposium on Parallel and Distributed Tools, pp. 134-145, August 1998. Google Scholar
Digital Library
- 18.B. Stroustrup. The C++ Programming Language, Third Edition. Addison-Wesley, 1997. Google Scholar
Digital Library
- 19.M. A. Weiss. Data Structures and Algorithm Analysis in C++. Benjamin Cummings, 1994. Google Scholar
Digital Library
- 20.R. Wilson, R. French, C. Wilson, S. Amarasinghe, J. Anderson, S. Tjiang, S.-W. Liao, C.-W. Tseng, M. Hall, M. Lam, and J. Hennessey. SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compilers. ACM SIG- PLAN Notices, vol. 29. no. 12, pp. 31-37, December 1994. Google Scholar
Digital Library
Index Terms
A tool framework for static and dynamic analysis of object-oriented software with templates


Janice Cuny


Comments