Thursday, April 21, 2011

Extra help to finish OMCC and Opponents selected

Extra help has arrived to help me finishing my report. Yes, the AMAZON kindle is finally with me, and here is the first glimpse of my thesis on a kindle.


I am currently into the various sections of the report trying to finish everything by next week when the first draft will be public.

That is why I have selected my opponents and also the thesis I will be the opponent as a part of the graduation requirement. Everything looks fine to start May with the revision of the draft and plan the presentation for the middle of May.

Sunday, April 17, 2011

Roadmap to the end of the thesis

Finally, I am reaching the light at the end of the tunnel.

Soon I will be done with this project, this is the output of the last meeting with my supervisor for the road map until the end of the project.


Now my activities are 100% on finishing the first draft of the thesis, after that I will start to create the grammar for a subset of modelica and use the OMCC to build the compiler :D

It is very probable that some adjustments may be necessary, but I will have pleanty time until the presentation to fix them.

The initial goal of finishing the thesis by the end of april is looking more and more a reality.

Soon ... the first draft :D
Posted by Picasa

Tuesday, April 12, 2011

OMCC with error handling

I have been working on the thesis very hard lately, so far I have
accomplished this:

* Lexer and Parser
* Lexer and Parser Generator
* Error Handling

The last part is now working like this:

It uses error recovery to detect more errors, but it always fails at the end. Right now it only recovers from the action ERASE token, however if there are tokens with errors nearby it will stop parsing.

From the papers I read, I have this primary error handling techniques (single correction) which could be insert, replace or erase. So far I have not implemented MERGE because my parser only understand tokens and has no idea about the semantic value of the tokens. I need to implement a table to look for the semantic value, also important for displaying the errors with the right String not with the Token NAME as now.

***ERRORS WERE FOUND AND COULD NOT RECOVER ***

Syntax Error near [TOKEN:T_DO 'do' from (line:3 col:18) until (line:3
col:20)], ERASE token
Syntax Error near [TOKEN:T_ADD '+' from (line:4 col:13) until (line:4
col:14)], INSERT token {T_INTCONST or T_IDENT}
Syntax Error near [TOKEN:T_ADD '+' from (line:4 col:13) until (line:4
col:14)], REPLACE token with {T_LPAREN}
Syntax Error near [TOKEN:T_ADD '+' from (line:4 col:13) until (line:4
col:14)], ERASE token
Syntax Error near [TOKEN:T_IDENT 'y' from (line:8 col:5) until (line:8
col:6)], INSERT token {T_THEN}

program file:

1/* this is while test of comment */
2read x y z w;
3while x <> 99 do do
4 ans := (x++1) - (y/3);
5 write ans;
6 read x, y;
7 if x = 10
8 y := 234;
9 endif
10end


My thesis is getting close to the end, I hope it can be completed by the end of this month.

Wednesday, April 6, 2011

OMCC - (OpenModelica Compiler-Compiler)

Compiler-Compiler is a term that refers to a program that can generate a parser for compiler, so the new name after a deliberation with my Examiner is OMCC, having in mind that OMC is the command line instruction for the current compiler, I think that OMCC will be easily remembered for the new developers that start to work in this compiler and base their work on my thesis.

$omcc MetaModelica
..... Generating files
DONE!

Saturday, April 2, 2011

OMC-LPG OpenModelica Compiler - Lexer and Parser Generator

OMC-LPG (OpenModelica Compiler - Lexer and Parser Generator) is the name I came up to call my thesis. I realize when I was writing my report that it is difficult to write all the time the long name, so I needed a short, easy to remember and off course unique to name my project. This is how OMC-LPG was born.

The focus of my work during this week is been mainly on the report, after setting up the SVN environment and fixed some bugs with my supervisor on the OMC. It is time to rush with the report.

So far I have been writing about 3.600 words for the report in the last month, and well I don't count pages because it is pretty bulky but including the source code (which will change later) I got around 111 pages. By the way this is a pretty easy way to count words in a pdf under linux:

/thesis$ pdftotext MasterReport.pdf MasterReport.txt
/thesis$ wc -w MasterReport.txt
3591 MasterReport.txt

/thesis/code$ wc -w *.*
171 lexer10.l
934 Lexer10.mo
595 LexerCode10.mo
152 LexerCode.tmo
992 LexerGenerator.mo
930 Lexer.mo
848 LexTable10.mo
499 Main.mo
1294 ParseCode10.mo
137 ParseCode.tmo
626 parser10.y
2272 ParserGenerator.mo
1151 Parser.mo
1157 ParseTable10.mo
40 SCRIPT.mos
138 Token10.mo
11936 total



LaTeX is a formidable tool for professional text writers, I am glad I started earlier with this report because I got the opportunity to play around a bit with it without the pressure of time.

I have set as a deadline to finish both, project and report the last day of April. Let's see how this plan goes.