Prof Avery's weblog
the beckoning aperture of dismay


CSU Fullerton Perl Powered Python vi Hacker

Geek News

del.icio.us bookmarks


Sat, May 21, 2005

Final Exam Date
Right you are -- the date on the syllabus page was wrong, but the outline was correct. The final exam is definitely next Friday, and I've updated the pages to match.

/var/spool/courses/csuf/2005/spring/cpsc423 #

Thu, May 19, 2005

Class Cancelled
Well... actually, you probably knew that. I was, like some of the rest of you folks, stuck in traffic on the 57. Incident Response and Forensics will, of course, not be covered in the Final Exam. If you haven't turned in Assignment 8, you may do so on the day of the final.

/var/spool/courses/csuf/2005/spring/cpsc433 #

Sun, May 15, 2005

Full-Disclosure Weekend

/var/spool/courses/csuf/2005/spring/cpsc433/misc #

Fri, May 13, 2005

Final Review
The review sheet for the final exam is ready.

/var/spool/courses/csuf/2005/spring/cpsc433 #

Outline updated
I've updated the Class Outline to show the reading for the material that we covered last week: Sections 6.1, 6.6, and 6.7.

/var/spool/courses/csuf/2005/spring/cpsc423 #

Tue, May 10, 2005

Symantec Worm Simulator
Symantec has released a Worm Simulator. I can't tell whether this is just a sales tool ("Oooh, look at the scary worm! Buy stuff from us or the worm will get you!") or if it could be useful as a research tool.

If you're running Windows, download it and let me know.

/var/spool/courses/csuf/2005/spring/cpsc433/misc #

Mon, May 09, 2005

Today's Project Meeting
Click here for today's milestone. If you're having trouble thinking of tests to perform, click here for some pretty good suggestions.

/var/spool/courses/csuf/2005/spring/cpsc461 #

Sun, May 08, 2005

Office Hour Change
My office hours on Wednesday, 5/11 will be cut short by an hour -- 2:00-3:00pm instead of 2:00-4:00pm. I will hold additional office hours on 5/12 from 3:00-4:00pm in addition to regularly scheduled office hours 5:15-7:00pm and on 5/13 from 5:00-7:00pm instead of 6:00-7:00pm. As always, you are also welcome to make an appointment.

/var/spool/courses/csuf/2005/spring #

PLY Format
If you haven't started writing the code to read object files, I recommend PLY format. I hadn't noticed it, but the page I linked to already includes code to read PLY files. The PLY page at Georgia Tech also has code to convert OBJ files to PLY format.

/var/spool/courses/csuf/2005/spring/cpsc465 #

Sat, May 07, 2005

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

/var/spool/courses/csuf/2005/spring/cpsc423 #

Mon, May 02, 2005

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

/var/spool/courses/csuf/2005/spring/cpsc423 #

Software Milestone Exercise
Click here for today's Lab Exercise.

/var/spool/courses/csuf/2005/spring/cpsc461 #

Sun, May 01, 2005

3AC Interpreter
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.)

/var/spool/courses/csuf/2005/spring/cpsc423 #

Example Parser and another Lexical Analyzer
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.

/var/spool/courses/csuf/2005/spring/cpsc423 #

Sat, Apr 30, 2005

Static models
To help you get started on Assignment 5, click here for a C version of the cup object. If you want to try other models, you can download the Perl script.

/var/spool/courses/csuf/2005/spring/cpsc465 #

Fri, Apr 29, 2005

Assignment 3
Click here for Assignment 3 and here for the 3AC syntax.

/var/spool/courses/csuf/2005/spring/cpsc423 #

No class tonight
Class is canceled tonight. I apologize for the short notice, but at least you'll have Friday evening free. Please start reading Chapter 6 for next week, and check back here in a few hours for Assignment 3.

/var/spool/courses/csuf/2005/spring/cpsc423 #

Wed, Apr 27, 2005

Assignment 5
Assignment 5 is available. I will post some code to help you get started this weekend.

/var/spool/courses/csuf/2005/spring/cpsc465 #

Mon, Apr 25, 2005

Today's Lab Exercises
Click here for the Function Point Estimation Exercise and here for details about today's project meeting.

/var/spool/courses/csuf/2005/spring/cpsc461 #

Tue, Apr 19, 2005

Optical Illusions
The optical illusion I mentioned in class is here, you'll probably want to collect the whole set.

/var/spool/courses/csuf/2005/spring/cpsc465 #

Example Lexical Analyzer
As you finish up working on the parser, if you're feeling shaky about your own scanner, you can grab lexer.zip.

This is a scanner generated by Flex, the GNU Fast Lexical Analyzer generator. You need the .c and .h files to compile a working program.

The file example.l is the Flex source file; you won't need this unless you want to change the scanner. The file lex.yy.c was generated with the command flex -l example.l.

Take a look at main.c to see how the lexical analyzer works. Call yylex() to get the next token. The value returned by yylex() will be one of the token types defined in y.tab.h. When yylex() finishes, the variable yytext will contain the corresponding lexeme.

/var/spool/courses/csuf/2005/spring/cpsc423 #

Mon, Apr 18, 2005

Lab Exercises
Click here for the Code Coverage Testing exercise and here for notes on the next project meeting.

/var/spool/courses/csuf/2005/spring/cpsc461 #

Wed, Apr 13, 2005

For Windows people
I used py2exe to generate Windows executable that you can run without installing a Python interpreter. Download generate.zip and unzip it, then run generate.exe. If this doesn't work (and it may not -- I haven't written a Python program for Windows in nearly five years), go over to ActiveState and download ActivePython.

/var/spool/courses/csuf/2005/spring/cpsc423 #

Test Generator
If you want to torture-test your parser, download this Test Generator written in Python.

While the code is a little complicated by the need to keep track of declared variables and indentation, really all it does is use the grammar the way Chomsky intended, in "reverse", to generate new programs.

Note too that while the programs are syntactically correct and obey the rules that I set down in the assignment for the use of identifiers, they're completely meaningless.

/var/spool/courses/csuf/2005/spring/cpsc423 #

I give up
I've updated the examples yet again. Sigh.

/var/spool/courses/csuf/2005/spring/cpsc423 #



July 2020
Sun Mon Tue Wed Thu Fri Sat