CS 421: Programming Languages and Compilers
News for Fall 2012
  • 12/8/12 - I have posted a sample final exam and a solution for it, and a solution hw9-sol.pdf for HW9. - ELG
  • 12/7/12 - I have posted a new version of mp11.pdf to add the missing rho's to the Function Application case - ELG
  • 12/2/12 - mp11.pdf is out and due next Sunday, December 9. This is the last MP for this semester. There will be one more HW. - ELG
  • 11/27/12 - HW10 is out and is due next Wednesday, December 5. - KB
  • 11/27/12 - I have posted a new version of mp10.pdf to changed the stated due date to Thursday 29, Nov. I have posted a new version of hw9.pdf to change operational semantics to structural operational semantics. - ELG
  • 11/26/12 - I have posted a new version of mp10grader.tar.gz to correct the failure to export print_string to the interface of micromlint(,Sol). - ELG
  • 11/26/12 - I have posted a new version of mp10.pdf to correct an inconsistency in Problem 12. Some x has been changed to Some f. - ELG
  • 11/12/12 - HW 8 reports have been e-mailed. Contact us if you have any question. - HS
  • 11/12/12 - Mp9 report have been mailed back, everyone who lost points in adjustment part is due to reduce/shift conflict in their code. - LL
  • 11/9/12 - All test suites and solutions for the MPs and HW through MP8 and HW8 should now be posted. - ELG
  • 11/8/12 - HW 5 reports have been mailed. Please contact us if you have not yet received it. - HS
  • 11/7/12 - A new version of mp9.pdf and mp9grader.tar.gz have been posted. The pdf clarifies how wild cards are recorded in declarations, clarifies the desugaring of op and monadic operators; corrects fun and val rec to take at least to IDENTs; fixes the incorrect statement about your role with precedence and associativity, and makes the last problem extra credit. The new grader directory contains a new solution file that corrects a discrepancy between the solution and the pdf in the way \handle is treated. The behavior specified in the pdf was not what I originally intended, as it is not what is done the the parent language SML, but it is easier to implement and is what was specified, so I've changed the solution. - ELG
  • 11/6/12 - a new version of mp9.pdf has been published - HS
  • 11/6/12 - new version of mp9 is updated - LL
  • 11/4/12 - mp9grader.tar.gz has been updated in order to fix a small problem in its solution. - LL
  • 11/2/12 - I will take Hassan's office hours at 4:00pm today (Friday 11/2/2012) in my office SC2112 because Hassan will be away at a conference. - ELG
  • 10/26/12 - I have posted another version of mp8grader.tar.gz, this time with some of the stuff you need, like soution.cmo, in it. - ELG
  • 10/26/12 - I have posted a new version of mp8.pdf and mp8grader.tar.gz. I have fixed a fair number of incompatibilities between the solution and the pdf (all in the solution). These were mainly in the problems for strings and comments. I have removed mp8common.cmi by placing the types it introduced into mp8common.ml. I have revised the pdf to reflect this change. None of the basic specifications of the problems have changed, but I recommend you get a fresh copy of the pdf because many of the sample outputs will have cahnged, at least some. You also should replace the footer in your file with the new one in mp8-skeleton.mll. The original one delivered had inadequate support for the extra credit problem. - ELG
  • 10/23/12 - TA Kyle Blocher has taken a two week leave of absence. While he is gone, office hours will be redistributed between myself and Hassan. For the next two weeks only, Hassan will have office hours in SC 0207 on Thursday 10/25 and 11/1 at 11:00am - 11:50 am, and Fridays 10/26 and 11/2 at 4:00pm - 4:50pm. Elsa Gunter will have office hours in SC 2112 Mondays 10/29 and 11/5 at 11:30am - 12:20pm, Tuesdays 10/23, 10/30 at 1:00pm - 1:45pm and 3:30pm - 5:00pm, Wednesdays 10/24, 10/31 at 1:30pm - 2:20pm, Thursdays 10/25, 11/1 at 12:30-1:40pm. - ELG
  • 10/22/12 - Solutions to HW5 and MP6 have been posted. - ELG
  • 10/17/12 - I have posted a revision to mp6grader.tar.gz. The way solution.cmo handled the if-then-else case was not in strict conformance with the pdf. Also, I have rewritten the proof-canonicalizer to make it more liberal, thus allowing more proofs to be automatically judged equal to mine. There are still some ways in which proofs could vary and still arguably be correct, but I believe that can now only happen if you decide to reimplement (in a different way) some of the functions we have given you (such as gen). - ELG
  • 10/16/12 - I have posted a exams directory. - ELG
  • 10/14/12 - It has come to my attention that some people were incorrectly docked points for not wrapping pairs in parentheses in problem 5 on the test. If you believe you were so graded, you should present your test to me for a regrade within this next week. - ELG
  • 10/14/12 - After consulting with Hassan, I find there is a concern that it is proving quite difficult for students to digetst that larger than previously usualy library of function offered for use in doing this assignment, and that that is causing it to take longer to do this assingment than was expected. Therefore, I have decided to extend the deadline for ontime handin to Thursday 18 October. - ELG
  • 10/12/12 - I have posted version 1.1 of mp6.pdf to correct the line overruns and to put the arguments to unify explicitly in set brackets. I have posted version 1.1 of mp6.pdf to correct the type given for tl. - ELG
  • 10/2/12 - Solutions to mp3, hw2, and mp4 have been posted. - ELG
  • 10/2/12 - I have posted version 1.2 of mp5.pdf to correct the type given for cps_exp in Problem 5. - ELG
  • 10/1/12 - I may have posted a new version of mp5.pdf and mp5grader.tar.gz. I added annotations to data types for abstract syntax to help link the constructors to their concrete syntax. I corrected the example code to use the most recent pretty printer. This effects the printing of functions and their cps transformations, the printing of the transformation of applications, and the printing of the transformation of a val rec declaration. The description of the freeAndBindingVarsInDec for a val rec declaration has been corrected. I put an end on each let-in expression. - ELG
  • 9/27/12 - MP3 reports have been mailed. If you did not receive the reports, please contact the staff. - LL
  • 9/25/12 - Today in class we will have a lecture form a guest speaker, Gil Tene, who is CTO and co-founder of Azul Systems.
    TITLE: Understanding Garbage Collection in managed runtimes
    ABSTRACT: Garbage Collection is an integral part of application behavior on managed runtime platforms such as Java and .NET, yet it is often misunderstood. Since the majority of modern software development is targeting such platforms it is important for developers to understand the basic characteristics that govern memory management behavior, and the actions they can take in selecting and tuning collector mechanisms, as well as in their application architecture choices.
    In this presentation, Gil Tene (CTO, Azul Systems) reviews and classifies the various collection techniques available in mainstream runtime today, focusing on Java runtime as an example. Following a quick overview of common garbage collection techniques including generational, parallel, stop-the-world, incremental, concurrent and mostly-concurrent algorithms, he defines terms and metrics common to all collectors. Gil then classifies each major JVM collector's mechanisms and characteristics and discuss the tradeoffs involved in balancing requirements for responsiveness, throughput, space, and available memory across varying scale levels. Gil concludes with some pitfalls, common misconceptions, and 'myths' around garbage collection behavior, as well as examples of how some good choices can result in impressive application behavior.
    BIO: Gil Tene is CTO and co-founder of Azul Systems. He has been involved with virtual machine technologies for the past 20 years and has been building Java technology-based products since 1995. Gil pioneered Azul's Continuously Concurrent Compacting Collector (C4), Java Virtualization, Elastic Memory, and various managed runtime and systems stack technologies that combine to deliver the industry's most scalable and robust Java platforms. In 2006 he was named one of the Top 50 Agenda Setters in the technology industry by Silicon.com. Prior to co-founding Azul, Gil held key technology positions at Nortel Networks, Shasta Networks and at Check Point Software Technologies, where he delivered several industry-leading traffic management solutions including the industry's first Firewall-1 based security appliance. He architected operating systems for Stratus Computer, clustering solutions at Qualix/Legato, and served as an officer in the Israeli Navy Computer R and D unit. Gil holds a BSEE from The Technion Israel Institute of Technology, and has been awarded 28 patents in computer-related technologies. - ELG
  • 9/22/12 - MP2 reports have been mailed back in two emails. If you did not receive the reports, please contact the staff. - LL
  • 9/20/12 - I have posted a revision for mp4.pdf that fixes the overrun in Problem 6b. - ELG
  • 9/20/12 - HW1 report has been mailed back. If you did not receive the report, please contact the staff - LL
  • 9/19/12 - I have posted a revision for mp4.pdf. In Problem 3, tne base case should have been when n is less than m rather than the other way around, as I first had it. - ELG
  • 9/19/12 - I have posted the solution and the full tests for MP2. - ELG
  • 9/10/12 - The web server for our class currently refuse to serve files without extensions and files with a .ml extension. So, I have copied mp1-sol.ml and tests-full to mp1-som.ml.txt and tests-full.txt respectively, and added links for these to the webpage. You may want to strip off the .txt when saving the files to your own machine. - ELG
  • 9/7/12 - I have posted the solution and the full tests for MP1. - ELG
  • 9/7/12 - I may have posted a new version of mp2grader.tar.gz. The solution file before had various optimizations to try to prevent redundant search. I have not studied it carefully (it was not mine), but I have replaced it with my solution. My solution is straightforward, and in general will do redundant searches. Directly, or indirectly, it uses six auxiliary functions, one being the solution to Problem 8, two others being auxiliary functions for that problem, and 3 being implementations of library functions (you could just use library functions directly). You are not required to give the most efficient algorithm for these problems, merely one that satisfies the specification. Of course, the human grader who reads your code may choose to point out needless inefficiencies, but you should not lose points, so long as you are compliant with the specification - ELG
  • 9/5/12 - I may have posted a new version of mp2grader.tar.gz. I believe I may have include an incorrect early version of the solution. - ELG
  • 9/3/12 - I have posted a new version of HW1. Program point 6 was mislocated. - ELG
  • 9/1/12 - HW1 has been release a few days early, in case anyone wants to get an early start. It will be due on 9/11/12. The basic definitions you need were covered in class on Thursday, but we will spend more time on these ideas on Tuesday. - ELG
  • 8/29/12 - I have posted another new version of mp1grader.tar.gz. After emphasizing that you all need to put open MP1common at the tops of your files, I absentmindedly left if out of mine. I also fixed teh double space in Problem 5. The new tarball is there now. My apologies for the iterations. - ELG
  • 8/29/12 - I have posted a new version of mp1grader.tar.gz. I needed to added a period to the solution of Problem 1. - ELG
  • 8/28/12 - MP1 has been posted. Because I failed to cover quite enough material today, HW1 will be postponed for a week. In general, I will not announce when an MP or HW is posted. They will be posted weekly on Tuesdays before midnight, due the following Tuesday (except if it is an exam day). - ELG
  • 8/28/12 - This semester, we will use Piazza for the class newsgroup. Participation in this not required, but may be helpful. If you wish to participate in this newsgroup, please sign up using this portal. - ELG
  • 8/28/12 - Welcome to CS421, Fall 2012. This page will be the main bulletin board for the course, and hence is always under construction. Please check it frequently. - ELG
    Contacting Staff
    Submitting Assignments
    Regrade Policy

    Class Schedule
    Tues, Thurs 2:00pm - 3:15pm
    1404 SC

    Elsa Gunter
    Email: egunter@illinois.edu
    Office: 2112 SC
    Phone: 265-6118
    Hours: Mon 11:30am-12:20pm, Tues 3:30pm - 4:20 pm, Thurs 12:30pm - 1:40pm
    Also by appointment

    Teaching Assistants
    Kyle Blocher
    Email: blocher@illinois.edu
    Office: 0207 SC
    Hours: Tues 1:00pm - 1:50pm, Thurs 11:00am - 11:50am -->

    Hassan Samee
    Email: samee1@illinois.edu
    Office: 0207 SC
    Hours: Wed 1:30pm - 2:20pm, Fri 4:00pm - 4:50pm