The Program Database Toolkit (PDT)

What is the Program Database Toolkit (PDT)?

C++ is a highly complex language that has changed considerably due to recent ISO/ANSI standardization efforts. Tools available for analysis and processing of C++ did not adequately support the latest features, such as templates and namespaces. We developed the Program Database Toolkit (PDT) to provide this support. Currently, the Program Database Toolkit consists of the C++ IL Analyzer and DUCTAPE.

EDG Front End

The Program Database Toolkit is based on the latest Edison Design Group (EDG) Front End, a parser that is almost up-to-date with the C++ standard. The EDG Front End parses a C++ source file, and creates an intermediate-language (IL) tree.

IL Analyzer

The C++ IL Analyzer processes the intermediate language tree, and creates another file. This file is in program database (PDB) format, and can be easily and efficiently read by a programming or a scripting language. The file essentially contains the C++ interface of the original source. It consists of item descriptions that describe functions and classes, including template instantiations, as well as other types, source files, namespaces, templates, and macros.


DUCTAPE (C++ program Database Utilities and Conversion Tools APplication Environment) is a C++ library that processes and merges PDB files. Via this library, applications have access to the C++ interface represented by a PDB file.