Inhaltsverzeichnis

Abstract

The focus of this talk will be type theory (type system and type inference), applied to a dynamic language (Slides of a previous talk are [6]). A side-effect during working on this topic was the development of a visualization tool:

This tool is a Java application which visualizes the control and data flow graph of the intermediate representation of Open Dylan [1] (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 [2]. The Java code [3] consists of 2000 lines of code, the compiler hooks were about 250 lines of code. Interactive application can be viewed at [5].
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 [4] (data flow nodes and edges are pink).