|
|
Introduction
| Course Description
|
Introduction to compiler construction (emphasis on compiler front ends). Course contents include the following: Formal translation of programming languages, program syntax and semantics. Finite state recognizers and regular grammars. Context-free parsing techniques such as LL(k) and LR(k). Code generation, improvement, syntax-directed translation schema.
|
|---|
| Location
|
CSI 3117, Tuesday and Thursday 3:30-4:45pm
|
|---|
| Textbooks
| There are no required texts. However, there
may be assigned readings. See the
resources page for online links.
|
|---|
| Acknowledgements
| Slides courtesy of Keith Cooper, Linda Torczon, Uli Kremer, et al.
|
|---|
Announcements
Important announcements related to the course will be posted
on this page. Make sure you check this page at least once a day.
- May 22 Final exam scores and final grades now on grades server. Everyone have a fun summer!
- May 19 Updated answer for critical path, live range,
and loop transformations in
solution
to practice problem 6.
- May 19 Dept reports 92% response rate for course
evaluations. Thanks for providing feedback!
- May 18 Review session will be held Tue 5/19 3:30pm in
AVW 3165
(opposite CS dept library).
- May 18 Send me an email if you would like a review session
for the final exam Tuesday, with your preferred times.
- May 18 Practice
problems
and solutions
for final exam now available.
- May 13 Final day to fill out course evaluations
online.
If student response rate can reach the dept average of 75%,
I may be more open to holding a review session next week :-)
- May 12 Please fill out course evaluations
online
by Wed May 13.
I'm getting warnings from the dept because this course
has the lowest response rate of all 400 level courses.
With no class Tue and the project deadline moved to Fri,
you have no excuse for not filling out course evals today :-)
- May 11 Added automated testing to Project 5.
See project web page for details.
Submit server ready for submissions.
Due date moved to Friday, May 15th.
- May 9 Midterm 2 scores now available
on grades server.
- May 8 Please fill out course evaluations
online.
- May 7 No class Tue May 12. Read the following
article on
the future of compiler research instead.
- May 7 Solutions to quizzes and midterms posted on
schedule page.
- May 4 Updated slides for
lecture 17 to add more
information on DAG construction. Updated
solutions
to practice problem 5 to add b+c to OUT for B2 in problem 6d.
You may need to clear your browser cache to download
the updated version of each file.
- Apr 30 Final Exam
has been scheduled for Wed, May 20 (10:30am-12:30pm, CSIC 3117).
- 30 Project 5
now available for download & submission. Note
that there are no automated tests. You need to examine your output
by hand to determine whether you are producine the correct output.
- Apr 28 Midterm 2 moved to Tue, May 5.
- Apr 27 Removed a difficult algebraic simplification test
case in one of the project 4 release tests.
- Apr 27 Midterm 2
Practice problems
and solutions
posted. Don't forget to also study practice problems
from (the cancelled) quiz 3.
- Apr 17 Added to Project 4 the
archive code.out.zip containing
some sample byte code outputs of "javap -c" for the class file
produced for the public test C-- files.
- Apr 15 Project 4 Eclipse
archive p4.zip
now available, with updated Classfile.java.
Will set up submit server testing tomorrow.
- Apr 14 Quiz 3 cancelled (for now).
- Apr 10 Quiz 3 moved to Thu, April 16th.
- Apr 7 Quiz 3 moved to Tue, April 14th.
Practice problems
and solutions are
now available.
- Apr 2 Fixed error in test06.out
for Project 3
so that function symbol tables are now output correctly.
Testing setup has been updated on the submit server
(note this means your submission may now fail if it
was also not outputting symbol table information for
functions with forward declarations).
Download and update test06.out
on your machine so your public test testSymtab2 will work properly.
- Apr 2 Project 3 deadline moved to Monday, Apr 6th.
- Mar 24 Midterm 1 moved to Tue, Mar 31.
- Mar 23 Project 2 scores posted on grades server.
There was a minor problem with score entry which was solved
by reloading scores from the submit server as a different set
of tests (and ignoring the original scores).
- Mar 16 Midterm 1 is scheduled for Thu, Mar 26.
Topics include scanning, parsing, syntax-directed translation,
and type checking. Practice problems
and solutions, as well
a practice midterm
and its solutions
have also been posted.
- Mar 16 Project 3 description has been
posted. Submit server is up and running. Project deadline is
Fri, April 3rd.
- Mar 10 The
Students to Business (S2B) program
provides opportunities for internships and jobs. More
information here.
- Mar 10 Quiz 2 scores have been put on the grades server.
- Mar 10 Project 2 deadline extended to Mon, Mar 16th.
10 points extra credit for students completing the project by the
original deadline.
- Mar 9 Quiz 2 practice problem 6
solutions have
been corrected, replacing lookahead ) with { ), +, * }.
Didn't finish applying closure.
- Mar 7 Quiz 2 practice problem
solutions have
been updated. A small change has been made to practice problem 8.
- Mar 5 Submit server has been updated so that release tokens
may be used any time (i.e., before passing all public tests). Hope this
encourages students to submit their projects earlier!
- Mar 4 Quiz 2 practice problems
and partial solutions are
now available.
- Mar 4 430 TA has been reassigned and office hours canceled.
- Mar 3 Quiz 2 has been scheduled for Tue, March 10th. It will
cover bottom up parsing, including shift/reduce and LR parsers.
Practice problems will be provided by Wednesday.
- Mar 3 When starting project 2,
Before making any changes to your code, make sure you can run
the code in StudentTests.java (applies skeleton scanner/parser
to toy1.c and toy2.c). If you are using Eclipse,
remember that you may need to apply "Refresh" to
the entire project so Eclipse can find the
files generated by JLex and CUP.
- Mar 2 Project 1 and Quiz 1 scores are now visible on the grades server.
- Mar 2 Project 2 description and files have
been updated so that p2.zip is
now an Eclipse project archive, with working public tests.
Project 2 is now also active on the submit server.
- Feb 22 Fixed project 1 TestUtils.java
so that NFA public/release tests now pass
even if DFA is not implemented. Submit server now works properly.
You may update your local copy of TestUtils.java if you wish by
replacing "if (num != 0)" with "if (num > 1)" in method testFilter.
- Feb 22 Correction for Problem 12 in
Practice Problems 1.
The expression grammar should have been a right-recursive grammar.
The grammar has been corrected in the revised version of Practice
Problems 1. A solution is provided in
Practice Problems Solutions 1.
The solution for the expression grammar has also been added to the
slides for Lecture 5.
- Feb 19 Quiz 1 is scheduled for Feb 27 during lecture.
It will cover everything up to and including the lecture on predictive
parsing. Practice problems and
solutions have been posted.
- Feb 19 Slides for lecture 5 on predictive parsing has been slightly updated.
- Feb 11 Submit server is up and running for Project 1. For now, make all submissions by submitting the file TG.java via the submit server web page
here.
Will be working to correct known bug: can't pass NFA public test until DFA is successfully built.
- Feb 9 Project 1 description posted. Main
difference is addition of line of code to print out number of states in FA.
Submit server will be set up by Tuesday.
- Jan 29 Grade and submit servers should be up and running. You
may retrieve your linuxlab login & password from the grade server.
Staff
| Name
| Office
| E-mail
| Office Hours
|
|---|
| Chau-Wen Tseng
| AVW 4135
| tseng@cs.umd.edu
| Tue 2-3:30pm (or by appointment)
|
|