CSCI 420 Syllabus

Instructor

Aspen Olmsted
Course website : http://blogs.cofc.edu/olmsteda
Tel: 843.953.6600
Email: Please use aspen.olmsted@cs.cofc.edu with Subject = CSCI360
Office: J. C. Long Building 226
Office hours: MWF 9:00 – 10:00 AM

Class place and time

Classroom: J C Long 220
Time: TR 1:40 – 2:55 PM

Catalog description

CSCI 420 – Principles of Compiler Design –  A course in the formal treatment of programming language translation and compiler design concepts. Topics include scanners, parsers, and translation.. Prerequisites: CSCI 230, CSCI 320 and MATH 307.

Course Outcomes

  1. To master the use of regular expressions in lexical analysis.
  2. To master the use of DFA in lexical analysis.
  3. To master the use of NFA in lexical analysis.
  4. To master the use of BNF in describing Context free grammars
  5. To be familiar with Top Down Parsing LL(1)
  6. To be familiar with Bottom Up Shift Reduction parsing LR(1)
  7. Apply use of regular expressions and BNF to build lexical analyzer and parser using compiler generation tools
  8. To be familiar with Symbol Table generation in semantic analysis
  9. To be familiar with code generation

Professor Assumptions

I am assuming because you are in this class you want to learn about object-oriented
programming.  Therefore, it is my job to use the 40 hour long classes and 80 hours of outside
work to get you there.

Required text

Compilers: Principles, Techniques, and Tools (2nd Edition), by Aho et. al., 2006. Retail Price $141.00.  Used copies from $74.50 and Electronic from $55.00

Optional text

  • Flex & Bison: Text Processing Tools, by John Levine., 2009. Retail Price $29.99. Used copies from $5.50
  • Programming Language Processors in Java: Compilers and Interpreters, by David Watt and Deryck Brown., 2000. Retail Price $106.  Used copies from $4.50

Grading scale

100-90 (A); 87-89 (A-); 86-84 (B+); 80-83 (B); 79-77 (B-); 76-74 (C+); 73-70 (C); 69-67 (C-); 66-60 (D); else (F)

Evaluation schedule

30% Final
30% Quizzes
40% Programming Project

Programming Project

Each student will do four sections of a programming project over the semester:

  • 1st – Build a lexical analyzer in flex
  • 2nd – Build a parser using flex & Bison
  • 3rd – Build a code beautifier using Flex & Bison
  • 4th – Add language elements to a working compiler

Quizzes

Each chapter of the book has a series of exercises that builds on previous chapters from the book.  You are encourages to work through the exercises by the class time on the following Tuesday after the material has been covered.  A small subset of the homework will be used as a basis for a 15 minute quiz at the beginning of the Tuesday class.  We will have 13 quizzes and the lowest grade will be dropped automatically.  There will be no makeups for any reason.  So if you miss class during quiz time this will become your lowest grade.

Final

We will have one comprehensive final during finals week covering the material for the whole course.

Classroom disruption

Please read the College of Charlestons Student Code of Conduct. When you come to class
please turn off your cell phones and all other electronic communication devices.  I do encourage
discussion so if you have a question do not hold back from interrupting me if you are afraid I
have moved on.  If it is something I will talk about a little later I will note it on the board so we do not forget.

Disabilities

If you have a documented disability and are approved to receive accommodations through
SNAP Services, please contact me.

Student Honor Code

I expect you to abide by the Honor Code and the Student Handbook: A Guide to Civil and
Honorable Conduct. If you have a question about how to interpret the Honor Code, ask before
acting! I encourage collaboration, but you must document it. Thus, each student will submit
their own homework and, when collaborating, provide a reference to those people and
documents consulted.