I am interested in concurrency, networking, a little of game programming, program analyses, etc.

I am currently working on dynamic shape analysis and visualization of data structures in Java programs. For my analyses, I am mostly relying on starJ. It is a tool developed by Bruno Dufour in the Sable lab for his Master's thesis.

From trace files generated by the starJ agent, I can recreate Java stack objects and objects creation, deletion and interaction. Basically, it's almost everything that is happening inside the JVM (Java Virtual Machine).

The second part of starJ is a framework for analyses. With it, I implemented an analysis to determine whether a data structure in a Java program is a tree, a DAG (Directed Acyclic Graph) or a cycle.

I am currently working on other kinds of data structure analyses and on how to nicely animate the evolution of data structures over time.

For more insight on my research, you can take a look at my presentation slides given at the Sable meeting.

Presentation in PowerPoint format or Presentation in PDF format.

Here is an example of a visualization done on a SplayTree.


This SplayTree example is a very simple one. All the program does is inserting three (3) BinaryNodes and deleting two (2).

The nodes represent objects, and the arrows represent connections between objects. Dotted nodes and arrows represent objects being deleted, but not yet collected by the Garbage Collector (GC).

A graph is produced for every changes in the data structure, and it is drawn using DOT from Graphviz.