User:Ondrej: Difference between revisions

From ASCEND
Jump to navigation Jump to search
Ondrej (talk | contribs)
No edit summary
No edit summary
 
Line 5: Line 5:
Mentor: [[Ben Allan]].
Mentor: [[Ben Allan]].


Subversion branch: {{srcbranch|ondrej|}}
Subversion branch: {{srcbranchdir|ondrej|}}


== Project description ==
== Project description ==

Latest revision as of 07:26, 22 August 2011

Ondrej Krc-Jediny

Proposal: http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/ascend/t127230757738

Mentor: Ben Allan.

Subversion branch: ondrej:

Project description

Goal of this project is to create a prototype implementation of possible new ASCEND compiler. Current compiler is highly effective, coded using Flex/Bison, but has a huge and difficult code, that is hard to understand and extend. Being a critical part, compiler code needs to be high quality with no (or least possible amount of) errors and bugs. That is still harder to achieve in current vast situation. Using more modern language description and parser generation tool like ANTLR, the listed issues can be resolved. ANTLR, having very good GUI-based development environment, active community and various output languages can result in a modular, maintainable and fast compiler. Additionally, some of the objectives of next-generation ASCEND syntax can be incorporated in the solution and tried out.

Tasks

Create ANTLR parser of ascend4 language - rewrite Flex/Bison rules to more readable ANTLR'sExtended Backus-Naur Form. By doing this, obtain an AST (Abstract Syntax Tree ). This will also result in getting rid of much of the code behind Bison rules. Pass the AST to ANTLR-created semantic analysis filters. Additionally, extend the existing parser with next-generation parser ideas - at least some syntax ideas like respelling the pedantic keyword style, moving the language to look more like modern programming languages, etc. Create tree walker converting ascend4 tree to the extended grammar trees. Test the solution on a reasonable amount of test input. If there is time left, start incorporating the solution into the existing C-based system.

Milestones

Finish the ascend4 parser including semantic analysis filters by mid-term. By the end, test the parser thoroughly and work on the new ideas. Complete as many as possible, resulting in a solid and compact prototype for a new compiler implementation.