GCC Introspector is a Perl/RDF/XML/SQL interface to the GNU Compiler Collection.
Version: 0.7The Introspector enables the programming tools that deal with source code such as the compiler to communicate in a standard and neutral manner reducing the accidental cost of programming.
Operating System: Linux
Like a telephone switchboard connects many parties who might wish to talk to each other, the Introspector allows multiple consumers and producers of data about software to quickly and painlessly transfer information to each other.
This data about software, or meta-data is read and written in and out of existing software tools via a standardized plug-in interface. Each producer has its own flavour of data and format of data that it stores about your software, and the introspector allows for each software to speak it's native language.
The Introspector plug ins act analogous to network cards in an ethernet allowing for broadcasting of the meta-data to the network of consumers.
The usage of RDF or Resources Description Format as the underlying representation is of essential importance. RDF is the foundation of the next generation of the internet, the Semantic Web where hypertext links is replaced by meaningful references to resources of type and quality.
The introspector uses the excellent Redland RDF Application Framework for parsing/serializing, storing/retrieving and querying/traversing the RDF data. The Berkley DB storage mechanism provides an efficent indexing system, and the SWIG Simplified Wrapper Interface Generator provides native langauge interfaces for all major programming systems.
The GCC interface uses Redland to create repositories of data that can be processed by any tool needed. Experiments have been made with compiling this graph data into arrays, so called "ICE Cubes" that can be traversed even quicker than the redland database.
This new technology when available will be able to be used from the same introspector API that gives access to Redland.