Syllabus
Introduction to different paradigms of programming: Imperative - Object Oriented - Functional- Logic Imperative and Object-oriented Programming - Role of Types - Static and Dynamic Type Checking - Scope rules ; Grouping Data and operations, Information Hiding and Abstract Data Types, Objects, Inheritance, Polymorphism, Templates. Functional Programming - Expressions, Evaluation, types, type systems, values and operations, function declarations, lexical scope, lists and programming with lists, polymorphic functions, higher order functions, Data abstraction.
Logic Programming - Review of predicate logic, clausal-form logic, logic as a programming language, Unification algorithm, Abstract interpreter for logic programs, Semantics of logic programs, Prolog - arithmetic, recursion, cuts and negation, Real-life applications of Prolog. Prolog implementation in Scheme/Lisp.
Text Books
- Scott M L, Programming Language Pragmatics, 3rd Edn., Morgan Kaufmann Publishers, 2009
References
- Programming Languages: Design and Implementation (4th Edition), by Terrence W. Pratt, Marvin V. Zelkowitz, Pearson, 2000.
- David A Watt, Programming Language Design Concepts, Wiley Dreamtech, 2004
- Ghezzi C and M. Jazayeri, Programming Language Concepts, 3rd Edn, Wiley.1997
- Kenneth C Louden, Programming Languages: Principles and Practice, 3rd Edn., Cengage Learning, 2011.
