Archive for May, 2005

Parser Test Programs

Saturday, May 7th, 2005

The programs I used to test Assignment 2 have been posted here.

Windows executable for 3AC Interpreter

Monday, May 2nd, 2005

Click here for a standalone version of the 3AC interpreter.

Software Milestone Exercise

Monday, May 2nd, 2005

Click here for today’s Lab Exercise.

3AC Interpreter

Monday, May 2nd, 2005

I’ve posted a virtual machine written in Python that will execute the 3AC for Assignment 3. You can download a copy fo the 3AC factorial program here. Make sure that you have Python installed, then type

$ python 3vm.py factorial.3ac

You’ll see a trace of memory accesses and the output of the program.

(Note: now that I’ve actually been able to run the program, I’ve updated the original factorial program and its corresponding 3AC code, and added a HLT instruction to the 3AC definition.)

Example Parser and another Lexical Analyzer

Sunday, May 1st, 2005

If you had trouble finishing Assignment 2, you can download example.zip to start work on Assignment 3.

The parser was generated with the Coco/R compiler generator. To add semantic actions, you can either read the documentation, edit example.atg and re-generate the compiler, or you can modify the C code directly.

I chose Coco/R instead of YACC or Bison because it generates Recursive-Descent parsers instead of LALR(1) parsers. You are, of course, limited to LL(1) languges, but the resulting code is significantly easier to read and debug.