Datengarten 31

Watch compiler optimizing code or A tool for debugging compiler optimizations and type inference (in deutscher Sprache)


This tool is a Java application which visualizes the control and data flow graph of the intermediate representation of Open Dylan [0] (former DylanWorks, Harlequin Dylan, Functional Developer) and animates optimizations. The Open Dylan compiler was extended with hooks to send control flow and data flow changes via TCP/IP to the Java application. The justification why the visualization is in Java is because I couldn't find a decent graph layouting and animation library with an API. The graph library used is yFiles [1]. The Java code [2] consists of 2000 lines of code, the compiler hooks were about 250 lines of code. The communication protocol in use are S-expressions, in the same marshalling format as swank (the slime backend protocol).

An example for this work is a visualized map(method(x) x end, #(1)), available at [3] (data flow nodes and edges are pink).



Zeit und Ort

25. Juni 2009, 20 Uhr im CCCB, Marienstr. 11, 10117 Berlin