Course Code: CS532 Course Name: Functional And Logic Programming Prerequisites: NIL Syllabus: Functional programming: Functions as first class objects, laziness, data-types and pattern matching, classes and overloading, side-effects etc. Languages like ML and Haskell will be used to describe the concepts. Lambda calculus: Syntax, conversions, normal forms, Church-Rosser theorem, combinators. Implementation issues: Graph reduction, Three Instruction Machine. Logic programming: Horn clauses, resolution, SLD-refutation, Prolog. Negation in logic programs and implementation issues. Texts: 1. R. Bird and P. Wadler, Introduction to Functional Programming, 2nd Ed, Prentice-Hall, 1998. 2. S. L. Peyton-Jones, The Implementation of Functional Programming Languages, Prentice-hall, 1987. (Full text available online: http://research.microsoft.com/Users/simonpj/Papers/slpj-book-1987/index.htm). 3. J. W. Lloyd, Foundations of Logic Programming, Springer-Verlag, 2nd Ed. 1987. References: 1. J. D. Ullman, Elements of ML Programming, ML 97 Edition, 2nd Ed, Prentice-Hall, 1998. 2. L. Sterling and E. Shapiro, The Art of Prolog, 2nd Ed, MIT Press, 1994. 3. J. R. Hindley and H. P. Seldin, Introduction to Combinators and Lambda-calculus, Cambridge University Press, 1988. |