Powered by Flash Templates Designed by Website Templates Membership

PostHeaderIcon Visualize - extending Coco/R

The project is centered around providing a visual interface for Coco/R, a compiler generator tool. Coco/R is used for teaching compiler theory at Rhodes University at a third year level. Currently there is no IDE for Coco/R. Furthermore the project aims to produce a mechanism for constructing visual representations of Abstract Syntax Trees produced during the parsing of a grammer. Extensions to the project will attempt to provide step-by-step guidance to the user, as to help them understand the compiler generation process.

Update: November 1, 2010

D-day, final project hand-in is upon us. Looking around the honours lab, the battlefield, it is clear that the end is near. Many broken bodies out there but everyone is still in a good mood and can't wait for to finally hand over their projects to the markers. It's been a good long year but an unbelievable learning experience!
The final version of my thesis can be found here. Or alternatively check the Documents section.

Update: August 21, 2010

The user interface has been improved and buggy components fixed. The error/warning feedback pane now displays correctly.

The feedback pane

Update: August 16, 2010

The final project write-up started today. 3 Pages done, only 80 plus to go!

Update: July 27, 2010

Vacation is over and it's back to work. A lot of work was completed over the vacation, with the user interface for CocoIDE getting a redesign as well as performance improvements. Furthermore, the rules used for automatic AST generation have been fine-tuned. We are now producing accurate and easy to navigate trees, which can be used to increase learners understanding of the compilation process and how recursive descent parser generators work.
Another enhancement added is the ability for learners to "overlay changes" which generates the new AST over the existing AST. This overlay can have its' visibility altered and learners can see how changes the've made to their grammar or source document affects the parse tree.

For your viewing pleasure:

The CocoIDE

The new IDE includes a tree navigation component. This component functions similarly to a context map. By providing a smaller, more abstract version of the abstract syntax tree, navigating around a large AST is made easier. are able to drag the mouse to a position of interest on the tree navigation pane and the main tree display will be altered to show a more detailed and larger version of that area to the user.

Generated Abstract Syntax Tree

As can be seen in the image above, Coco/R generates easy to view and navigate syntax trees for simple grammars. It still needs to be tested with more complex grammars, but I do forsee problems with grammars containing tokens that cannot be represented using binary nodes.

Syntax Graph produced by CocoIDE

Syntax Highlighting in CocoIDE

Update: April 22, 2010

So its been a long absence since my last update but I feel that the wait has been worth it. Below are screenshots of the Coco/R IDE at the moment. It is visualizing the compile process and producing syntax graphs. Further more, it is correctly producing ASTs for all the grammers I've tested. Now I need to make the visual AST more interactive.

IDE 1

IDE 2

Update: March 09, 2010

The project is now producing rudementary ASTs. The following AST diagram was drawn by the program! Very basic, I know, but we getting there.

Input: (1-5)*(2-3)

Diagram 1

Contact Info
 
Etienne Stalmans
Rhodes University
Email: g07s0924 @AT@ campus.ru.ac.za

 
Highlights

November 1, 2010
Thesis handed in!

October 16, 2010
Just completed my final oral presentation. Find it in the documents section!

August 16, 2010
Thesis write-up started!
Literature review uploaded.

July 27, 2010
Major update. New screenshots and information. Second presentation also uploaded.

April 22, 2010
Screenshots added.

March 09, 2010
The project is producing rudementary ASTs! Check out the screenshot.

Feb 23, 2010
Presentation of project proposal during semenar session

Feb 22, 2010
Project proposal completed and handed into supervisor