Nano '95: a
compiler from Pico to Java
This was an interesting but problematic project. It was interesting
because I liked doing something new and writing a compiler was
something new for me. However the 3 involved languages caused some
troubles. First there is C, which is a nice language but if your coming
from Scheme and Pascal this language has certain 'assembler' allures.
So instead of focussing on the compiler, I also had to focus on
memory-management and debugging issues. Second, the language Pico was
of no interest to me. The language was created by my promotor and as
such I had little choice but use it. As it turned out, the language
Pico had certain ill defined features such as
dynamic scoping and
random definitions (that is to
say, a defintiion can occur anywhere in the code, also inside an
if-statement). These two features were found out very lately and made
writing the compiler an even more boring job than it already was. Not
only was the language of little interest, I could certainly not create
a fully working compiler that actually did something
useful. Third, the target-language
Java was also a disaster because it was one of the first versions
created by sun and as such it was like targetting a quickly moving
target. Every two months new features were added and 'old' ones were
removed. Here I learned about the java CLASSPATH misery, which was, in
these days, not as straightforward as these days. So, basically, this
was a not-so-intersting project.
Voorstudie
Tussentijdse Raportering 1
Tussentijdse Raportering 2
Manual
Final Report
Self Evaluation
Documented Source Code
Source Code (.arj)