COP5555:  Programming Language Principles

 

 

 

 

Home
Contact Info
Syllabus
E-learning
HW1 Q&A
HW4 Q&A
HW5 Q&A

Announcements

4/30   HW5 is regraded for t43, t44, and t46. Since everything other than #f is regarded as true, the expected result for t43, t44 and t46 is changed to "<compiled procedure sscheme.library.Not@" for the first two and "1" for the last. -- KyungHee 

4/27   HW regrading requests should be sent to me before Thursday(1:30pm) in order to be considered. If you have any question, please come by on Thursday(11:30am~1:30pm). -- KyungHee 

4/22   HW5 Q&A is updated. 

4/16   HW5 Q&A. 

5/15 I will be out of town on Thursday and Friday 4/22-23.  I will have office hours on Monday morning on May 26.   You may also meet with me on Saturday or Sunday 4/24-25, but will need to make an appointment. 

5/15  The final exam will be held on Monday, April 26 3-5pm and cover all material from the lectures, textbook, and homework that we have done this semester.  4 pages of notes will be allowed. 

4/15  EDGE Students:  Both your final exam and the HW5 are due on Friday, April 30.   (Final grades must be turned in by noon on May 3). 

4/15  Course evaluations from on-campus students will be done at the end of class on Monday.   The student who will take care of the evaluations has kindly agreed to remain for 10 or 15 minutes after class so that students who are taking Dr. Lok's class (which meets at the same time) can come and fill out the evaluations.

4/14  HW5 has been posted.  

4/7   Example programs to use with asm, which you should get from http://asm.ow2.org/  CodeGenDemo.java   IO.java CodeGenDemoJava.java

4/2   HW4 program part is graded. If you have any doubt about the grading, please send me email with "cop5555 HW4 grading" as subject. I had to change my Monday(4/5) office hour to Wednesday(4/7) 2:00~3:00pm. Sorry for any inconvenience. -- KyungHee

3/28  LetStar.java and LetRec.java have a problem. Change the line Pair last = addAndReturnLast(bindingSpecList); to Pair last = addAndReturnLast(new Pair(bindingSpecList, null));. In addition, in ToStringVisitor.java, visitLetRec and visitLetStar should be changed to return "(letrec ("... and return "(let* ("... respectively.

3/27  HW4 Q&A is updated with a correction in example output. Check the DOT handling at the examples also.

3/26  HW4 Q&A is updated. Use ExtendedParser as your parser name.

3/24  The deadline for HW4 has been extended until Tuesday, March 30 for on-campus students. The deadline for EDGE students remains the same.

3/22  Sad new:  from Barney and Chloë Milner:

"We are sorry to announce that Robin Milner died on Saturday 20th March, in Cambridge, just three days after the funeral of his wife, Lucy.

Robin Milner developed the first version of ML and invented Henley-Milner type checking, both of which we have studied this semester, among other important contributions to computer science.

3/22  Reminder:  Two lectures today.  No lectures on Wed or Friday of this week.

3/19  I have to miss today's office hour. The supplementary office hour is 3/21(Monday 4:00-5:00PM). Sorry for the inconvenience I brought to you. --Hengxing

3/19  A Q&A page for HW4 has been started.  Make sure to check it.

3/17  HW4 was posted on Tuesday.

3/15  I will be out of town and not hold the usually scheduled lectures on Wed. March 24, Friday March 26, and Wed. March 31.  Instead additional lectures will be given on the following Mondays, immediately after the normal class at 3pm:  March 15 (today), March 22, and April 5. 

3/3   The operative due date and time for homework assignments is the one on the homework assignment if that is inconsistent with e-learning.   (EDGE students, as usual, have an extra week.)

3/2    HW3QA.htm.

3/1  Exams for on campus students were returned today in class.  (If you weren't there today, I will continue to bring them to class).  Graded EDGE exams were given to the EDGE staff this afternoon--after they have scanned them, they can be viewed at http://www.ufedge.ufl.edu/studentinfo/login.php?HW_Ret=1.  Solutions have been posted on e-learning-make sure to look at these before asking about your grade.

3/1  I had to cancel today's office hour. I'll hold another office hour on Thursday(1:55pm~2:45pm) to make up. Sorry for any inconvenience. --KyungHee

2/26  Recommended reading on denotational semantics.   The paper provides a tutorial on denotational semantics, and an example using it so specify patterns in XSLT (a language for transforming XML documents) 

                    Wadler:  A formal semantics of patterns in XSLT

2/25  HW3 is available on elearning

2/22  HW2 program part is regraded for on-campus students. (EDGE submissions have already been graded correctly.) For test1, since Datum cannot be empty, your parser should throw SyntaxException. test94 and test96 take both answers with and without the production <expression> --> (begin <sequence>) as correct. Please, check the updated comment in HW2. --KyungHee

2/17  As announced at the beginning of the semester, the midterm will be given on Monday, Feb 22 (EDGE students by Feb 26) and cover material discussed in the lectures up to and including today's class and the corresponding chapters in the textbooks.  Examinations from previous semesters have been posted on e-learning.  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.  The time will be tight, so please be in your seats a few minutes early so that we can start right at 1:55pm

2/12  Note that the contact info now has new TA office hour and email info. Hengxing is incharge of the paper&pencil part, and KyungHee takes care of the program part grading.

2/12  HW2 program part feedback is updated at E-Learning. There are 100 test cases, and each mistakes will affect at most 4 test cases. --KyungHee

2/9  One more correction to HW2:  the production <expression> --> (begin <sequence>) could be crossed out to remove the ambiguity.

2/7  HW2 program part help file is here.

2/4  One more correction to HW2:  the production <command> --> <expression> should not have been crossed out.

2/2  HW2 Pencil and Paper Exercises from Scott

2.11 Prove that the following grammar is LL(1):

decl --> ID decl_tail

decl_tail --> , decl

--> : ID ;

(The final ID is meant to be a type name.)
2.12 Consider the following grammar:

G --> S $$

S --> A M

M --> S | e

A --> a E | b A A

E --> a B | b A | e

B --> b E | a B B

( e stands for epsilon )
(a) Describe in English the language that the grammar generates.
(b) Show a parse tree for the string a b a a.
(c) Is the grammar LL(1)? If so, show the parse table; if not, identify a prediction conflict.

1/29  Correction to HW2:  the production

<test> --> <expression>

should not have been crossed out.

1/27  HW2 has been posted in the E-learning folder.  It is due on Wed. Feb 10 at 10am for on-campus students.

1/26  Raw testing result of lexer is posted at E-Learning. Attached "TestCases" file has test inputs, and "HW1-YourName Number" file has your result. Read carefully the Notice found at Grader's comments and fix your lexer before second project. --KyungHee

1/21  See the HW1 Q&A for corrections to the NumberToken class (to solve problems when using for a CHARACTER and numbers with a leading +)

1/20  Some have asked why the example programs start the line and position numbers at 0 instead of 1.  In many situations in programming and language design, there are good reasons for starting at 0.  Here it is arbitrary, but I start at 0 in honor of Prof Edsger Dijkstra.  If you are interested, see EWD831 Why numbering should start at zero.   Much of Dijkstra's work was reported to the world in the form of short handwritten notes (with page numbers starting at 0)which he sent to a select group of colleagues, who then copied them and distributed them further.  They have been transcribed and are available on line.  This is an example.

1/20  HW1 Q&A is updated. Check it for submission instruction.

1/13  TA's office hour : Monday 5th period(11:45am~12:35pm) and Thursday 6th period(12:50pm~1:40pm) at CSE 327. I'll be online at E-learning (available for chatting) for EDGE students at Friday 5th period (or upon appointment). Please, include COP5555 in your subject line when you email to me. --KyungHee

1/13  See the HW1 Q&A link for answers to questions about HW1

1/11 Homework 1 has been posted in the Homework folder on E-learning. 

1/6   Slides are usually available shortly before class on E-learning

1/6   Welcome to COP5555. 

        The exam schedule for the course is

•Midterm
–On campus students   Monday, Feb 22 during class
–EDGE students by Friday, Feb 26
•Final Exam
–On campus students  Monday, April 26 3-5pm
–EDGE students by Friday, April 30

 

All on-campus students must take the exams  at the scheduled time.  Please schedule your job interviews and other travel so there are no conflicts.