Welcome to Department of Mathematics
logo

Mail Us
mathoff[AT]iitg.ac.in

Call Us
+91-361-2582650

FUNCTIONAL AND LOGIC PROGRAMMING

Code: MA517 | L-T-P-C: 3-0-0-6

Prerequisites: MA501 and MA511; or equivalent

Functional programming: functions as first class objects, laziness, data-types and pattern matching, classes and overloading, side-effects, description in languages like ML or Haskell; Lambda calculus: syntax, conversions, normal forms, Church-Rosser theorem, combinators; Implementation issues: graph reduction; Logic programming: logic and reasoning, logic programs, Prolog syntax, Horn clauses, resolution-refutation, constraint logic programming.

Texts:

  1. S. Thompson, Haskell: The Craft of Functional Programming, 2nd Edition, Addison- Wesley, 1999.
  2. S. L. Peyton Jones, The Implementation of Functional Programming Languages, Prentice Hall, International Series in Computer Science, 1987.
  3. L. Stirling and E. Shapiro, The Art of Prolog: Advanced Programming Techniques, 2nd Edition, MIT Press, 1994.

References:

  1. C. Reade, Elements of Functional Programming, Addison-Wesley, 1989.
  2. H. Barendregt, The Lambda Calculus: Its Syntax and Semantics, North Holland, 1984.
  3. J. W. Lloyd, Foundations of Logic Programming, Springer Verlag, 1987.