CMSC 430, Spring 2009

Theory of Language Translation


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.


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 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 now available, with updated 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 (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 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 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 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 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.


Name Office E-mail Office Hours
Chau-Wen Tseng AVW 4135 Tue 2-3:30pm (or by appointment)