CS 331,
Programming Languages
Autumn, 2009  2010Instructor Purandar Bhaduri, ext: 2360, email: pbhaduri. Teaching Assistants 1. Pavan Agarwal (email: a.pavan) 2. Manish Goyal (email: g. manish) 3. Ashish Mehta (email: a.mehta) Lab Sections: CS_331_TA.xls Evaluation Assignments 15% Midsem
35% Endsem
50% Textbook Useful additional material 1.
Semantics of
Programming Languages. Lecture Notes by Nick Benton. 2.
Formal Semantics of
Programming Languages, Lecture Slides by Zhendong Su. 3.
Programming
in Standard ML, online book by Robert Harper. 4.
On understanding types,
data abstraction, and polymorphism, Luca Cardelli and Peter Wegner,
Computing Surveys, Vol. 17, No. 4, December 1985. Reference Books 1. Glynn Winskel, The Formal Semantics of Programming Languages: An Introduction, MIT Pres, 1993. Lab Exercises 1. Week of 17 August 2009 Download and install ESC/Java from KindSoftware. The tool is available in three forms. I recommend the Eclipse plugin. Go through the documentation and run ESC/Java on small examples. 2. Lab Exercise 1: Due 7 September 2009, Monday Write a Java program for bubblesort and use ESC/Java to analyse the partial correctness of your programs. Submit your work and give a demo to the TA assigned to you. 3. Lab Exercise 2: Due 19 October 2009, Monday Download and install SML/NJ. Implement the FordFulkerson algorithm for finding the maximum flow in a network in ML. You can find the description if the algorithm on page 658 of CLRS (Cormen, Leiserson, Rivest and Stein: Introduction to Algorithms, Prentice Hall of India, 2007). Submit source code and sample runs to the appropriate TA. 4. Lab Exercise 3: Due 9 November, Monday Download and install SWIProlog if it is not already there on your machine. You will have to implement the CYK algorithm for contextfree grammars in CNF in Prolog in this exercise (see Hopcroft, Motwani and Ullman, pages 312  315). Submit source code and sample runs to the appropriate TA. 
