|
|
TextBook:
- Required Text: Compiler Principles,
Techniques, and Tools, Jeffrey Ullman et al,
Addison-Wesley, 2007
Description:
Csci 465: Compiler Design provides a very comprehensive coverage of
issues dealing with principles and practice of design and
implementation of compilers. In general, compilers convert programs in
high level programming languages to machine code. To this end, the
course covers topics in programming
languages, theory of algorithms, software engineering, and
architecture.
Course Procedures:
The course will utilize lecture and discussion, as the main teaching
tools for presenting the course material. This course requires
extensive programming and time management. Students will be
expected to
read the material and be prepared to discuss the readings and the
assignments in class.
Prerequisites:
Background in Automata and Formal Languages (Csci435),
familiarity to Computer Architecture (Csci351), and exposure to
any high level programming languages such as C, C++, or
Java are required.
Upon successful completion of the course, the student should
be able to understand the role and components of conventional
compilers. The objectives for this course include:
- Overview of Software Architecture and Compiling
- Lexical analysis
- Symbol tables (lexical scope, access data
structure,etc)
- Parsing (Top down Parser and Bottom parser)
- Semantic Analysis using Syntax directed translation and
attribute grammar
- Type checking, Type systems, Specification of a simple
type checker, etc.
- Run-time Environments (Stack, activation record, etc.)
- Intermediate Code Generations (ICG)
- Code Generation
Grading Policy:
- Three Exams 60% (20% for each exam)
- Assignments and Quizzes 10 %
<> Project 30 % (modest Compiler
design/implementation/Presentation) >
Exams:
There will be three exams:
- Exam 1 : September 16, 2011;
- Exam 2:
November 2, 2011;
- Exam 3: December
12, 2011;
Note 1: Make-up tests are not
granted and/or administrated.
Assignments and Quizzes:
There will be several assignments and/or quizzes throughout the course.
The topics of these assignments will be taken either from the textbook
or from other resources relevant to the course and will be announced in
advance. Assignments should be turned in the class. For every day of
late
submission 20% of the points will be deducted.
You are advised to hand in assignments in class. Any homework placed
without my knowledge (e.g., in my office mail box) will be accepted
without any warranty. In case an assignment is lost, it is your
responsibility.
Recommendations are: to save everything, retain important papers and
computer file until the course is finished.
Note 2: Anything that you submit
(e.g., homework) must be typed and spell checked otherwise it won't be
graded.
About Project:
There will be a modest programming project (write a modest
compiler), which counts 30% of course grade. The project is done
and presented individually. Late programs will lose 3-5% per day, up to
a maximum of
50% off after two
weeks. A program is considered to be on time if it runs before midnight
on the day it is due. The project must be presented to the class
at very last week of the class (December 5 and
7, 2011).
Grading Scale:
| 90 - 100% |
A |
| 80 - 89% |
B |
| 70 - 79% |
C |
| 60 - 69% |
D |
| below 60 |
F |
Note3: Graduate
students
taking 400-level courses are required by The Graduate School to
perform extra work
Participation & Class Attendance:
Regular classroom attendance is required, but does not count as
participation. Active participation in class involves preparing ahead
of time, asking intelligent questions that the book does not answer,
answering questions in class, and participating in classroom
discussions. If you know you will miss a class ahead of time, email the
instructor. Make friends with your classmates so they will be willing
to share notes, which problems were
assigned, etc., for when emergencies arise and you do miss class.
Civility in the Classroom:
Students are expected to assist in maintaining a classroom environment,
which is conducive to learning. Please do not bring food to
the classroom and always turn your cell phone (ringer) off if you have
to have it with you.
Disability Conditions:
If you have a disability condition that may effect your participation
in this course and wish to discuss academic accommodations, please
inform me as soon as possible.
Drops & Withdrawals:
Students should not assume that the instructor will administratively
drop the student for non-attendance. Withdrawal from the course is the
responsibility of the student. Should a student decide to withdraw from
the course, simply not attending class sessions, rather than formally
withdrawing from the course, may result in an 'F' on the student's
transcript.
PLAGIARISM, PROFESSIONAL ETHICS & PERSONAL
INTEGRITY
The UND academic policy clearly states an expectation that
each student submit his/her own work do otherwise, that is, to submit
anther's efforts as one's own, is at its least plagiarism, and at its
most unethical and without integrity. Indeed, it is a matter of
professional
ethics and personal integrity to graciously accept accolades for a job
well done, as well as to publicly acknowledge those to whom partial
credit
is owed.
Those found to be cheating on exams, assignments, and Project
will receive an "F " for the COURSE, and the matter will be discussed
with the appropriate Dean and/or Chair. I do not anticipate any problem
here.
Emergency Suspension of Campus
In the event of a major campus emergency suspension or closure, the
course requirements, deadlines, and grading percentages on this
syllabus
are subject to change. I will notify you of such changes by email
using emial address listed in Campus Connection .
Disclaimer: This syllabus
is
intended to suggest the outline of the course; it is not absolute.
Changes to the syllabus, should they occur, will be announced in
class.
Last
Update Dec.7., 2011
by H.R.
|