Sorry this update is somewhat belated. I have been working hard on the
Total lines of code is up to 17,000 or so now. The bits that are done
- The lexical analysers for the preprocessor and main compiler,
- The preprocessor parser and implementation of the copy and replace
- The main compiler parser, and
- The main compiler abstract syntax tree (AST) handling (validation and
Of the 17,000 lines, about 3,000 is
This is all for a subset of the COBOL nucleus, part from the COPY and
REPLACE verbs which are part of the "source text manipulation module".
The next step is the code generation, which involves hooking into GCC. I
am also looking at using LLVM for code generation.
The web pages have not yet been updated. That's on my TODO list.
So far I am happy with the decision to code the compiler in Lisp. I am
seeing massive productivity benefits compared to C, which I used in the
earlier version. The lines of code ratio is about 3-4:1 for C versus
Lisp, though it varies depending on the problem being addressed. The AST
code was only about 2:1 for example.
The GCC interfacing code will have to be in C, but I will keep that as
small as possible. LLVM requires C++ I believe, same deal there.
The next milestone is the code generation using GCC4.3. This will
probably take 1-2 months.