Home
Contact Info
Syllabus
Textbooks and Software

COP5555:  Programming Language Principles

 

Announcements

1/2   Final exam grades are available on E-learning.  The "homework" score was obtained by dropping your lowest homework grade and weighting HW7 3 times.  The "overall" score was .25*midterm + .4*final + .4*homework.  (Recall that the midterm had max 80).  The final grade was determined by the overall score with the following cutoffs: 85 A, 80 B+, 70 B, 60 C+, 40 C.  (All HW rescore requests were looked at--in most cases, a rescore could not affect the assigned grade.)

12/12  E-learning update.  Homework solutions folder added

12/11  HW7 HW7 graded. Make sure all grades are correct, and if any inconsistency, please send me email.

12/10  Pico+ Gallery: If you have a really cool Pico+ program you'd like to share send it to me and I'll add to our gallery.  No prizes, just fame and glory and the admiration of your peers.  Anonymous submissions are OK, too. but you won't get the fame and glory.

12/10  E-learning update:   If one of your first homework submissions received a low score because one mistake resulted in failing many test cases, thus causing your resubmission to also receive a low score, you may submit a rescore request via E-learning (look in the homework folder).  You need to clearly explain what happened so that it can be verified by looking at your two submissions.  

12/10  Final exam logistics 
bulletYou will be allowed four pages of notes, otherwise the exam is closed book. 
bulletThe exam will start promptly at 7:30am  on December 17, so come a few minutes early to ensure that you have the full time.   
bulletBring a photo ID--I'll check this during the exam. 
bulletEdge students:  your exams are usually faxed--please use a pen or dark pencil.  The exam will be emailed to your proctor after the in-class students have taken it.  You have one week to take the exam and return it to me.

12/10  E-learning update:  slides on Code improvement and Scripting languages have been uploaded.  Course evaluations will be done in class on 12/10.

12/8  TA's Monday office hour is moved from 3:00pm to 1:00pm for this week(12/8) & next week(12/15).

12/3  E-learning update:  HW6 & HW5 reregrading finalized.
      Please, notice that the changes in TEST_MODIFIED.tar, specially in t7.class, t27.class, t29.class, t27.pico, and t29.pico.
      Verify your HW5, HW6 grades are correct.
      Those who already got 100 at HW7 don't need to submit HW7.
        HW5 AVG:65.2, MED:75
        HW6 AVG:87.4, MED:98
      If you have any questions about grades, first verify your class behaves exactly the same as expected result, and then send me email khkim@cise.ufl.edu about which test case you are questioning.

12/3  The final exam will be given at the date and time scheduled by the registrar for our course, 7:30am-9:30am on Dec 17.   It will cover material from the entire semester.  

12/3  E-learning update:  Slides on Logic Programming, HW7.  

12/3 HW7 is a resubmission of HW6 which will be tested with the same test cases.  The grade is 0 or 100 and will count as three homework grades.  Plagiarism detection software will be employed as will measures to detect other kinds of cheating (such as hard coding solutions for specific test cases)  If your HW6 already passed all the test cases, you do not need to resubmit. 

12/1 E-learning update:  HW6 TEST.tar is distributed through HW6 submission.
Since grading HW6 will take some time, you'd better start debugging your program by comparing the execution result of your own generated class with ExpectedResult class.
My test sequence can be found from File TestSequence.
Image files used can be found here.
HW6 grading result will be announced as soon as possible.

11/26 One more-- delete the extra GOTO in assignment statements of type image_int.  i.e. 

...
store to y
GOTO
GOTO yloopguard
...

 

11/26  Typo in HW6.  Several places in the  spec of BinOpExpression:

  For (Expression1.type = AAA or Expression1.type =BBB) and

         (Expression2.type = CCC or Expression1.type Expression2.type=DDD)

11/24 E-learning update:  Midterm solutions and slides on procedures and OOP have been posted.

11/23 E-learning update:  HW5 graded & HW4 regraded.(HW4:AVG 83.7, MED 96)

@ File yourname has the result of compile, class generation, and execution. @ RESULT_yourname.tar has the class files generated by your CodeGenVisitor. @ Test.jar has four files,    ExpectedResult.tar which has class files generated by reference implementation,    TestCases.tar which has test pico files,    TestSequence which has test sequence I used, and    image files. @ You need to compare the result of both executions. For example, to test t0.pico, you should do,
1. generate t0.class using your CodeGenVisitor, 2. run your t0.class by java t0 imageFile, 3. run reference implementation t0.class with same parameter, and see what's the difference.

11/17  E-learning updates:  HW6 and slides on control flow have been posted.  You will not need to explicitly resubmit HW5.  We will rerun the HW5 solutions on your HW6 submission instead.

11/15 A HW5 Submission HELP has been added.

11/10 Code Generation FAQ 

11/7  Midterms for on-campus students will be handed back in class today.  If you don't make it to class, you may pick yours up during class next week or during my office hours.  Solutions  will be posted after all of the EDGE exams have been received and graded.  Discussions with me about your exam grade (except for obvious errors like adding the score incorrectly) should wait until after you have looked at the solutions. 

11/3  E-learning updates:  HW5 and slides on axiomatic semantics have been posted..  Some example Pico programs and the resulting class files are in the HW5/Examples folder.  SimpleImageDemo.java was moved to the HW5 folder.

10/31 Edge students:  Please remind your proctor that when faxing your exam, they should include a cover sheet with my name on it (the fax machine is shared with other members of the department) and also their own contact information (sometimes faxes are not readable and need to be resent).   

10/31 E-learning update:  HW4 graded & HW3 regraded. Make sure your HW1, HW2, and HW3 grades are correct. HW1(AVG. 85, MED. 92), HW2(AVG. 90, MED 97), and HW3(AVG. 86, MED. 95)

10/30 Two pages of notes means 1 sheet of paper with writing on both sides, or 2 sheets of paper iwith writing on only one side.

10/29 E-learning update:  SimpleImageDemo.java is in the Homework folder

10/29  Eclipse ASM plugin site:   http://andrei.gmxhome.de/eclipse.  (There are several others on the web that do not have the latest version, and thus won't work with the latest version of eclipse)

10/29  Exam logistics: 

bulletYou will be allowed two pages of notes, otherwise the exam is closed book. 
bulletThe exam will start and end promptly so come a few minutes early to ensure that you have the full time.   
bulletBring a photo ID--I'll check this during the exam. 
bulletEdge students:  your exams are usually faxed--please use a pen or dark pencil.  The exam will be emailed to your proctor after the in-class students have taken it.  You have one week to take the exam and return it to me.

10/27 E-learning update.  Slides on the JVM have been posted.

10/23 A HW4 Submission HELP has been added.

10/22 There are some changes at HW3 ExpectedResults. Please, use NewExpectedResults. The changes are for t12, t18, t21, t28, t29, and t42. Grading is not affected by this. The original attachment includes wrong version of ExpectedResult file. If you have any questions, please send me email. --KyungHee

10/22 Upcoming events:

bulletFriday is UF homecoming, so class will not meet.
bulletThe midterm will be on Oct. 31.  The deadline for EDGE students is one week later, Nov 7.  
bulletAnything covered in class up to and including today may appear on the midterm.   Next week, we will use Monday and Wednesday to talk about the Java Virtual Machine, ASM, and code generation.  This is necessary for HW5 and HW6 but will not be on the midterm.

10/22 E-learning updates:  

bulletSlides on denotational semantics and Lisp and Scheme 
bulletExams from previous years.  Be aware that every semester is different, both in the content and timing of the midterm, so it is possible you will find material on a past midterm that we won't cover this semester, or haven't covered yet.  If that is the case, ignore the question.
bulletSolutions to HW3 are in the HW3 folder.

10/18 khkim@cise.ufl.edu). Notice that Friday(10/24) is Homecoming day and there will be no office hour.

10/16

10/15 E-learning updates:  Slides on the Lambda Calculus are available.

10/13   E-learning updates:  HW3 & HW2_resubmission are graded. Check E-learning and send email to TA if you have any question. ExpectedResult, TestCases, and your result are attached to your HW3. Final grade for HW2 is updated also.

10/10 Elearning update:  HW4 has been posted

10/9 There are some changes in HW3 Submission HELP. The email problem causes the delay of response to the question about "ToStringVisitor" class. You can implement your own ToStringVisitor to test your program and it doesn't need to match exactly with sample output. However, the tree contents should be identical to given one. Make sure to check the first line of previous sample output with "pico + ..." is removed. Your program will be tested using my ToStiringVisitor which is used to generate ExpectedResult as well, so you don't need to worry about the format of output once you correctly build the AST tree.

10/7 A HW3 Submission HELP has been added.

10/6  Hw3 problem 1 may not be clear due to typos.  Here is a revised version of the first 3 sentences that should help.

Consider the following grammar fragment for simple assignment statements.  Note that this assumes the existence of a symbol table where the declared type of variables has been inserted and can be obtained with the lookup operation.  Suppose that the types are considered to be ordered boolean < int < real. 

10/6  Holders of department accounts are receiving frequent emails asking for use name and password.  DO NOT RESPOND TO THESE EMAILS. Our staff will never ask you to send them your password.  The latest one looks like

Dear valued User,

We are currently performing maintenance for our Digital Webmail Customers. We
intend upgrading our Digital Webmail Security Server for better online  
services.

In order to ensure you do not experience service interruption,Please you must
reply to this email immediately and enter your password here (*****) and Check
out your new features and enhancements with your new and improved ufl.edu
account,To enable us upgrade your ufl.edu account for better online services
....

10/5   E-learning updates:  HW2_EDGE and HW1_Resubmit_EDGE graded. Check E-learning and send email to TA if you have any question. ExpectedResult, TestCases, and your result are attached to your HW2. HW1_EDGE grades are finalized to reflect resubmission result.

10/1 HW3 info:  A new cop5555.ast.jar has been uploaded.  It is in the HW3 folder (not attached to the assignment).  The only difference is that the toString method has been deleted from ASTNode.java.  (You might find it helpful to implement a simple toString visitor that will print out your AST, but you are not required to do so.)

10/1 HW3 info:  A couple of class names in the jar file for HW3 are not exactly the same as given on the sheet with the AST syntax.  Go with the ones in the code. 

10/1 E-learning updates:  slides Types-2 and SML have been posted.

9/29   HW SUBMISSION NOTICE

Don't call System.exit at Scanner, SimpleParser, nor Parser. (It's ok to call System.exit at IOException, but not SyntaxException or ErrToken case.) Avoid using static field in your class unless you tested your class by calling multiple times. Always assume that the test driver will call Scanner|Parser several times for different test cases. Download your cop5555.jar after submitting your HW, and make sure it's correct. Before contacting the TA, check your submitted material first and make it clear what your question is.

9/29   E-learning updates:  HW1_Resubmission graded. The result is found at HW1_Resubmit attached file. In addition, HW1 grade is finallized to reflect all changes. If you see any mistake in HW1 final mark, send email to TA ASAP.

HW1 (AVERAGE: 85, MEDIAN : 92)

9/28   E-learning updates:  HW2 graded. Check E-learning and send email to TA if you have any question. ExpectedResult, TestCases, and your result are attached to your HW2.

9/26 E-learning updates:  HW3 assigned, Slides on Types posted.

9/22 Clarification of project deadline.  It is my intent to have all homework due at 9am, but I neglected to change the time from the e-learning default of 12pm while creating HW2.   So, for this assignment,  if you are submitting via HW2, you may have the 3 extra hours until 12pm (noon).  Note that e-learning often has a very heavy load at this time, so I strongly recommend not waiting until the last minute to submit.  

9/22  E-learning update:  Slides on Semantic Analysis are available.

9/22  CISE Career Workshop  tonight at Touchdown Terrace, 6-10pm

9/21   E-learning updates:  HW1_EDGE graded. Check E-learning and send email to TA if you have any question. ExpectedResult, TestCases, and your result are attached to your HW1.

9/18 TA's tomorrow(9/19, Friday) office hour is moved from 5:00pm to 11:00am for this week only. If you planned to see me and cannot make it at this time, please send me email(khkim@cise.ufl.edu).

9/16 A second homework Submission HELP has been added.

9/16 The test cases, expected result, and result of your grading are attached to your HW1 at E-learning. Line number and char position are optional, so I didn't check them while grading. Input 0123 is two tokens IntLin 0 and another IntLit 123 instead of Error. The resubmitted code will be graded in the same manner, and make sure your program produces the same number of tokens with exactly the same kinds. For example, if the desired token is one ErrorToken but you returned one Token with Kind ERROR, it'll be considered FAIL at that test case.

9/14  E-learning updates:  HW1 graded. Check E-learning and contact TA if you have any question.

9/12  E-learning updates:  HW2 has been posted.  Also, an assignment allowing HW1 to be resubmitted is in the Homework/HW1 folder.  Resubmission deadline is the same as HW2--no late resubmissions will be accepted.

9/11 E-learning updates:  Slides on Names, Scopes and Binding have been posted along with an updated version of  Parsing-2.

9/8 A homework Submission HELP has been changed. Please, check this.  

9/7 A homework Submission HELP has been added.  

9/5 A homework FAQ has been added.  

9/3 Correction: The tokens are in the package cop5555.tokens

9/3  E-learning updates:  Lecture slides Parsing-2.ppt have been posted. Corrections to HW1: add keyword "end" to enum in Token.java; delete mention of StringLitToken in Scanner; fix colors of a couple of |s in the RE.

8/29  E-Learning updates:  Lecture slides Parsing-1.ppt are available in the slides folder.  HW1 has been added in the Homework folder.

8/25  Lecture slides for today and Wed are available in E-learning.  (Click on the bottom link on the left--you need your gatorlink ID and password to log in.)  The grade distribution in the syllabus has been corrected.  

7/30/08 Welcome to the web site for COP5555.  More information can be found by clicking on the links on the left. 

        The final exam will be given to all on-campus students on the Dec. 17 from  7:30-9:30am, 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. )