Knowledge And Teamwork

Jan Vermeer's The Astronomer from Le Louvre

Project 1 Description - Programming Languages and Systems Concepts CSI 511


Last Updated Sat Sep 28 23:27:58 EDT 2002

Information and answers to questions of general interest about project 1 for the Fall 2002 semester of Programming Languages and Systems Concepts, ASCI 511 are contained here.
  1. The project description in PDF .
  2. Errata and notes of general interest (newest first):
  3. Example Code (For the example done in class, see the ex3 subdirectory).
  4. TA's Project 1 FAQ
  5. Some Useful References/Readings, note flex and bison are largely backward compatible with the BSD lex and yacc tools, so please consider:
    1. Some On-Line Lisp Grammars
      1. For this project we will use this grammar . The BNF in this grammar is modified, for compatibility with the syntax diagram generator at the BNF club . These diagrams are helpful for generating predictive parsers.

        This grammar uses a modified version of BNF, which differs as follows:

        1. the ::= operator is replaced with =,
        2. Each production is terminated with a period,
        3. terminals are bracketed by double quotes,
        4. nonterminals must being with a lower case letter.
        5. instead of delimiting optional rules with [ and ] (open and close square braces) optional rules are delimited with < and > (less than and greater than signs).
        To draw the diagram (in xwindows under U*ix or Linux):
        1. Load the Syntax Generator Applet (by clicking this link ).
        2. Clear the input window:
          1. Highlight all the text in the input window by holding the left mouse button down and scrolling through all the text. Releae the left mouse button when done (it should remain highlighted.)
          2. Hit the delete key.
        3. Copy the Blaise BNF into the input window.
          1. Display the entire modified BNF in a window.
          2. Holding the left mouse button down and highlighting the text. Releae the left mouse button when done (it should remain highlighted.)
        4. Paste the Blaise BNF into the input window- Move the mouse cursor over the input window and click the middle mouse button.
        5. Click on the button labeled <in.
        6. The pull down menu labeled help (help is the first menu entry, so it shows up by default) should allow you to browse the non terminals (one diagram per production).
        The diagrams show terminals in rectangles, nonterminals in ovals. Optional statements have a sort of an empty rectangle to show they are optional.
      2. GNU flex manual (a lexical analysis tool)
      3. GNU bison manual (a compiler compiler, e.g a parsing tool)
      4. Ashim Gupta's Lex/Yacc Tutorial This seems pretty accessible, might be a good place to get started.
    2. Grune and Jacob's Parsing Techniques - A Practical Guide - a detailed guide to how parsers really work. This is a world class text book that is now freely downloadable.
    3. The GNU Make Manual
    4. University at Hawaii's Make Tutorial
    5. Byron Becker's Make Tutorial (U. Waterloo)
    6. The BDH Quick and Dirty Make Tutorial
  6. Send an inquiry to Zhaohuei Yang or Prof. Bill Maniatty about the project.

Address

Department of Computer Science
University at Albany,
Albany, New York 12222

Electronic Mail: