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.
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.
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.
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:
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.
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.
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)