CSE 131A - Compiler Construction I

Winter, 2002 - Instructor: Sean Peisert

Home WebBoard &
Partnerless? Project 1 Project 2 Project 3 Lab/Office Hours Lecture Slides References & Tools Integrity Statement


Basic Course Administration:

Official Meeting times and places

Course textbook


Mass communications and announcement will occur via lecture, discussion section, email, these web pages, and the webboards. There is no guarantee that these 5 are fully redundant. You need to come to class, take notes, read your email, and check both these web pages and the webboards frequently.

The instructor, TA, and tutors are here to help you understand theoretical concepts about compilers and concepts needed to complete your own compiler projects. If you have questions, ask someone.

The web boards will be used by the instructor and the TA, and tutors for announcements, answering questions, etc... Postings by the instructor or TA on the web boards can be considered "gospel" and all students will be held responsible for announcements made there. Communication via email from the instructor or TA will be held to a minimum and will largely be limited to very last-minute announcements and private commucations.

Please feel free to email the instructor, the TA, and tutors personally for private questions, but it is greatly preferred to use the web boards such that all students can benefit from the questions and responses.

Course Outline (Rough)

  1. Lexing
  2. Project 1: Lexer
  3. Review of CSE 105: REs, DFAs, NFAs, & conversions
  4. Parsing Algorithms
  5. LR Parsing
  6. Project 2: Parser
  7. LL Parsing
  8. Semantic Checking
  9. Project 3: Semantic Checker (Part 1)
  10. Abstract Syntax Trees
  11. Syntax-Directed Definitions (SDDs)

Grading and Schedule


You must do your own work in this class. You and your programming partner cannot use programs from previous years, nor can you use copies of other peoples' programs from this year to help you solve the programming assignments. As you develop a solution to any of the programming projects you must keep copies of your intermediate efforts (paper copies are OK) since you will be asked to produce these if there is any dispute over who wrote a program. Keeping these intermediate copies is a required part of each project. We may ask to see these intermediate copies for any of the programming projects. If you don't have them you will get a zero for the project grade.

Discussing projects in groups (with the coding done separately, later), is in not considered cheating. Copying code for projects -- be it from current or previous compilers courses, books, other universities or anywhere else -- is. Receiving, providing, or soliciting assistance from another student during a test -- is not permitted under any circumstances.

Your computer account for this class should only be used to do course work. In particular, under no circumstances may you use your account to sabotage the work of other students either by tampering with others' files or by manipulating the Unix system so that its performance for others will be impaired.

Cheating WILL be taken seriously. It is not fair to honest students to take cheating lightly, nor is it fair to the cheater to let him/her go on thinking that is a reasonable alternative in life. Don't test me on this one.

Read the complete academic integrity statement for details on what constitutes cheating. Please ask us if you have any questions. Reading it and understanding it are required.

Penalties: Anyone copying information or having information copied during a test or in one of the projects will receive an F for the class and will not be allowed to drop. They will be reported to their college dean. If you can prove non-cooperative copying took place, your grade may be restored, but you must prove it to the dean -- I don't want to be involved.

If you have comments or suggestions, email me at peisert [located at] sdsc.edu.