Title: PDT: The Program Database Toolkit
1PDTThe Program Database Toolkit
- Allen Malony
- Sameer Shende
Bernd Mohr
2Program Database Toolkit (PDT)
- Program code analysis framework fordeveloping
source-based tools - High-level interface to source code information
- Integrated toolkit for source code parsing,
database creation, and database query - commercial grade front end parsers
- portable IL analyzer, database format, and access
API - open software approach for tool development
- Target and integrate multiple source languages
3PDT Architecture and Tools
C/C
Fortran 77/90
4PDT Components
- Language front end
- Edison Design Group (EDG) C, C, Java
- Mutek Solutions Ltd. F77, F90
- creates an intermediate-language (IL) tree
- IL Analyzer
- processes the intermediate language (IL) tree
- creates program database (PDB) formatted file
- DUCTAPE (Bernd Mohr, ZAM, Germany)
- C program Database Utilities and
ConversionTools APplication Environment - processes and merges PDB files
- C library to access the PDB for PDT applications
5DUCTAPE Class Hierarchie
6DUCTAPE Example
- Print all template instantiations
include "pdbAll.h" int main(int argc, char
argv) PDB p(argv1) if ( !p ) return
1 PDBcroutinevec r p.getCRoutineVec()
for (PDBcroutineveciterator rir.begin()
ri!r.end() ri) if ((ri)-gtisTemplate())
cout ltlt (ri)-gtfullName() ltlt endl
PDBclassvec c p.getClassVec() for
(PDBclassveciterator cic.begin()
ci!c.end() ci) if ((ci)-gtisTemplate())
cout ltlt (ci)-gtfullName() ltlt endl
pdbClassfieldvec f(ci)-gtdataMembers()
for (pdbClassfieldveciterator mf.begin()
m!f.end() m) if ((m)-gtisTemplate())
cout ltlt (m)-gtfullName() ltlt endl return
0
7PDT Status
- Program Database Toolkit (Version 2.1, web
download) - EDG C front end (Version 2.45.2)
- Mutek Fortran 90 front end (Version 2.4.1)
- C and Fortran 90 IL Analyzer
- DUCTAPE library
- Standard C system header files (KCC Version
4.0f) - PDT-constructed tools
- Automatic TAU performance instrumentation
- C, C, Fortran 77, and Fortran 90
- Program analysis support for SILOON and CHASM
- http//www.cs.uoregon.edu/research/paracomp/pdtool
kit/