COP5555:  Programming Language Principles

 

 

 

Home
Syllabus
E-learning

Announcements

12/13/09  Project 7 is graded. TA office hours for this week are moved to Monday(10:40am~12:30pm) and Thursday(10:40am~12:30pm). If you have any Project grading issue, plan to visit me during these time. --KyungHee

12/07/09  See the lecture from Friday for more information on Project 7.

12/06/09 Project 7 is due on Friday Dec 11. Remember that Project 7 will be graded 0 or 100, and will be tested TestCases(t1.plp~t50.plp) from Project6 only. --KyungHee 

12/06/09  Project 6 is graded on e-learning.  If you missed Project6 and need TestCases for Project7, contact me. Those who got 100 at Project6 have already marked 100 at Project7 and don't need to submit Project7. --KyungHee 

11/19/09  Here are a few examples for project 6, which is due Dec 4. 

11/17/09 Revised version of Project 6 spec uploaded at 9:25am: added instructions for IdentWithLocationAndColorExpr and CompositeExpr

11/12/09  Make sure your cop5555.jar has all necessary files including cop5555.ast and cop5555.provided packages when submitting Project5. It's wise to download your file after submission and test if it's compilable by typing "jar -xvf cop5555.jar ; javac -cp .:./asm.jar cop5555/*.java cop5555/*/*.java" at the directory you placed asm.jar in sand.cise.ufl.edu machine. --KyungHee

11/9/09  TA's office hour changed for this week and next week. My Friday(11/13) office hour for this week is moved to Thursday(11/12) 10:40am~11:30am. Next week office hours are canceled for both Wednesday(11/18) and Friday(11/20). --KyungHee

11/6/09  A few corrections were made in Project 5.  See the updated spec in the assignments folder on elearning.  Changes from previous version are red. It is OK to change the type of the argument to visitSimpleDec from Dec to SimpleDec if you need to.

10/29/09 More exams have been added to the "exams from previous years" folder on e-learning. 

10/29/09  Yes, you may have 2 pages of notes for the midterm.  You shouldn't need your notes for the first midterm, but you might want them for the(comprehensive) final where you will allowed 6 pages.

10/28/09 Reminder:  Midterm 2 on Monday.  It will cover material discussed in class since 9/30 through last Friday.    Make sure to read the relevant parts of Scott and Slonneger and Kurz as you prepare.

10/28/09  A jar file with a few example programs and generated code for project 5 has been uploaded the assignments folder.  You should be able to run these if your classpath is set properly.    See the sources for the expected command line parameters.

10/26/09  Project 4 is graded on e-learning.  For those who changed given signature of Scanner, Parser, or TypeCheckingVisitor class have given penalty. --KyungHee 

10/21/09  You will need to download ASM 3.2 from http://asm.ow2.org/.  If you are using eclipse, you will  also want the ByteCode Outline plugin: de.loskutov.BytecodeOutline_2.2.10.jar    The eclipse update site isn't up-to-date.  Instead, just download the BytcodeOutline jar file, put it in your eclipse plugin directory, and restart eclipse.  If you are not using eclipse,  you won't have the convenience of the plugin, but you really only need two things, neither of which require eclipse.  First, you want to be able to look at the bytecode.  You can do this with javap.  Second, it is sometimes helpful to see "asmified" code.  The org.objectweb.asm.util.ASMifierClassVisitor class will show you this.  It contains a main method that takes a class file as a command line parameter and print the asmified code to the console.  

10/20/09  There is a typo in HW1. It should be either foldl2 op+[2,3] = 5 or foldl2 op*[2,3] = 5. Also, for problem one, you only need exponents at least 0.

10/20/09  I will be out of town on Monday, Oct 26, so class that day has been rescheduled for 9:30am on Wed Oct 28 in the same classroom.

10/14/09  HW1 (with some small SML exercises) has been assigned on e-learning

10/14/09  HW1 (with some small SML exercises) has been assigned on e-learning

10/14/09  No class on Friday due to UF Homecoming

10/14/09   Corrections and clarifications for project 4:  For AssignDec ::= Type ident Expr,  the condition Cond: sym.lookup(ident) = null is listed twice.  Delete one of them.   Also, your Declaration nodes may have null fields (if no width and height were given in the declaration).  You need to allow for this possibility in your visitor to avoid null pointer exceptions.

10/13/09  Project 3 is regraded on e-learning.  Please, see new attachments for regrading result.(NEW_TestCases, NEW_ExpectedResult, NEW_yourName) Also, make sure the project3 grade has up-to-date score. Let me know any inconsistency. For SimpleDec and AssignDec, both [height, width] and [width, height] orders are given points, but you should use [width, height] order for Project4. --KyungHee 

10/12/09  Project 3 is graded on e-learning.  I'll hold one more office hour on Wednesday(10/14). You can come to see me during 11:45am~1:40pm. --KyungHee 

10/12/09   Dates for remaining exams:

Midterm 2:  Nov 2 (due Nov 6 for EDGE students)  

Final:  Dec 15, 10-12am.  (due Dec 18 for EDGE students)

10/1/09 My tomorrow(Oct/2) office hour is canceled. Please, email me if you had any question with subject include COP5555. Sorry for any inconvenience. --KyungHee 

9/30  The midterm will cover material covered in class today, up to but not including type inference.  For the midterm, you may bring 2 pages (1 sheet of paper written on both sides, or 2 sheets written on one side) of notes.  Otherwise the exam will be closed book. 

9/27/09   Exams and solutions from previous semesters have been posted on e-learning.  In the past  semesters, there has only been one midterm held later in the semester so these exams will include material that we have not yet covered and will not be on your exam.  Your exam will be limited to material that will have been covered in class by Wed (9/29).

9/27/09  Project 2 is graded on e-learning.  Make sure you follow the specification, and don't change the signature of given method or package name of the classes. I'll take points off for those changes starting from Project3. --KyungHee 

9/24/09  Project 3 is available on e-learning.  Watch today's lecture for more info. 

9/24/09   As announced on the first day of classes the first midterm will be given on the date below.  More information in the lecture Monday.

•Midterm 1
–On campus students   Oct 5
–EDGE students by Oct 9

 

9/24/09  Put all your classes in a jar file.

9/24/09  Make sure to submit your scanner with project 2 so that your project is complete.  Your current one might be different from your earlier submission if that one had errors in it.

9/19/09 See the assignments folder in e-learning for an updated grammar.  Note that the Display production has been changed as discussed in class today.  There are aspects of the given grammar that are not LL(1), you need to modify the grammar so that it is before you implement your parser.  This should not be a problem using techniques we discussed in class.

9/19/09  IMPORTANT: Please change the signature of your SimpleParser constructor to

public SimpleParser(Reader r, IMessageHandler h) throws IOException

Your test driver might contain something like

Reader r = ....
IMessageHandler h = new ScannerMessageHandler();
SimpleParser parser = new SimpleParser(r,h);
try{ parser.parse(); }
catch(SyntaxException e) { h.handleMsg( "[" + e.t.line + "," + e.t.char_num + "] " + e.getMessage()); }

9/14/09  EDGE students:  You may use assignments "Project n EDGE" for your submissions.  These are created with your deadlines.

9/14/09  10:00am.  Project 2 has been updated on e-learning.  (Minor corrections in the grammar)

91409  Project1 is graded on E-learning. Note that it's machine graded.
- Any changes in cop5555.provided package or cop5555.Scanner or SimpleParser(at Project2) class signature is problematic.
- Don't use static field in Scanner, or SimpleParser(at Project2). Test Driver will be unable to initialize static fields for each test case.
- Don't use System.exit in your code.(You'd better use RuntimeException for this purpose.)
- If you have difficulty in uploading your file because of traffic, send me email with your jar file attached before due. Email submission will be accepted with its timestamp.
Any question about Project1 grade, please contact me. --KyungHee

9/11/09  Correction:  the two Expr in the Display production are non-terminals and should be black.

9/11/09  Project 2 is available on e-learning

9/1/09  HW hints:  

    abc@def is an ident(abc) followed by an error followed by ident(def)  (corrected)

    You don't necessarily need to use the BAD_COMMENT error message.  (This was left over from an early version of our language that had multi-line comments).  However, your scanner should be able to deal with EOF terminating a comment.

      0000 is a sequence of 4 IntLitTokens.  (This and other strange inputs with 0 will not be legal according to the phrase structure so the parser will ensure that they don't appear in actual programs. )

9/4/09  No class Monday, Sept. 7.  Labor Day

9/4/09  There has been at least one confirmed case of H1N1 (swine) flu in our department.  If you become ill and suspect that you have the flu, please stay home for at least 24 hours after your fever is gone. See  http://www.ehs.ufl.edu/h1n1/   for more info. 

9/4/09  The  TA's office hours have been changed to
Wed 5th(11:45am~12:35pm) and Fri 4th(10:40am~11:30am) in CSE 327.
The best way to reach me is using khkim@cise.ufl.edu

9/3/09  Correction:  end_of_line_comment ::= // ~(CR|LF)* (CR LF | LF | CR)   (i.e. a single CR also terminates a comment. )

9/3/09   It is OK to share test cases (but not code) with other students.

9/2/09  Read Ch2 and the CD supplement sections on handling syntax errors.  Pay special attention to the sections on recursive descent parsing.

9/2/09  Correction to the Project 1: "skip" is not a keyword and should be deleted from the lexical structure.   Also, we will check that your scanner generates the correct tokens in the correct order, but we are not going to check your line and position numbers.  (Because different platforms have different conventions for line termination, this turns out to be more trouble than it is worth.)  Your life will be much easier later if you do have information about the token position, so it is strongly recommended that you implement it some way that you understand and works on your platform.

8/26/09    I've been asked to tell you that Fire Exit Drills are scheduled during the weeks of August 31st and September 11th.  Please remember that if the alarm goes off you are to evacuate the building.

8/24/09  Slides are usually available shortly before the class at E-learning

8/17/09       

        Welcome to COP5555.  You can find more information in the syllabus

         The final exam will be given to all on-campus students on the Tuesday,  Dec 15 10am-12noon, which is the date scheduled for this course by the registrar.  Please make your December  travel plans accordingly.  (You can find out the registrar's exam schedule for all of your courses from the course listings at http://www.registrar.ufl.edu/soc/.  Once you find the course, note the exam code, then look up the time and day on the exam schedule page. )