HI all, thought you might like to try out this new toy gui for introspecting the gccs asts. I have released a new version of the introspector, a proof of concept, something you can look at and learn from. A self contained demo program that allows you to graphically explore the structure of a almost any program that you can compile with the gcc!

One important aspect that is should mention is that this providers a fulll access to the gcc interface via code generation and subsequent execution. That creates the possibiltly to require that the users of that generated code make thier derivitive works under the gpl. That just might solve the wishes of those who want only free software to interface to the gcc..

It features the introspector ice cube. The ice cube contains a superfast and compressed extract of the semantic data of the program that can be compiled in as a lib and loaded into memory in miliseconds. The graph alogorithms are also very fast on constant size arrays of object!

Hopefully It will become the new way to embed a static semantic resources into your new programs. We then slice the ice cube for each by Property into nice thin C arrays. It has a gcc tree extracted out of the dotgnu pnet idlasm code emit function. That means i have reversed engineered an free software component.

The results of the reverse engineering are stored in a rdf repository. This has cwm,perl, and shell scripts doing semantic processing of the data. An redland RDF repository is used to interface into the guts of the gcc compiler.

The asts are serialized by a patched gcc3.4 experimental -fdump-translation-unit, you can find the source code in the cvs. That is emitted into rdf and converted by a perl script into a ice cube.

That are served into slices of data, each attribute its own vector that has the length of the number of nodes in the selected rdf property. There is in fact a matrix of all the objects and relationships between them stored in the Array.

This program contains just the linux binary of the program that has all this data compiled into an ICE Cube : That is emitted into a inline c array for compiling into the target program.

Please join up on the list, come to the #introspector chat zone on freenode.net, and jabber me at mdupont@nureality.ca

You can find the source download here : source Here is a binary for linux : binary

and a screenshot here : ScreenShot


In reply to Introspector Breakthrough by mdupont

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.