Preview Banner Image
MCA Syllabi Core Elective Course II - MCA10305-B. Principles of Programming Languages

Unit I
Why Study Programming Languages? - A Short History of Programming Languages - What Makes a Good Language? - Effects of Environments on Languages. Language Design Issues:The Structure and Operation of a Computer - Virtual Computers and Binding Times - Languages Paradigms. Language Translation Issues:Programming Language Syntax - Stages in Translation - Formal Translation Models.
Unit II
Data object variables, constants, data type, elementary data types, declaration, assignments and initialization, enumeration, characters strings. Structured data type and objects: Specification of data structured types, vectors and arrays, records, variable size data structure, pointers and programmer constructed data structure, Set files. Imperative Languages: Block structure, Scope rules, Parameter Passing, Construct like co-routines, Tasks etc.
Unit III
The class notion- Information hiding and data abstraction using classes, derived classes and inheritance- Polymorphism - Parameterized types.
Unit IV
Functional programming concepts - Referential transparency - Types - Type systems - Names, bindings, environment and scope - Recursive functions - Polymorphic functions - Type variables - High order functions - Curried functions - Lists and programming with lists - Definition of new user defined types in ML - Abstract data types - Evaluation methods.
Unit V
Review of predicate logic - Clause-form logic - Logic as a programming language- Unification algorithm - Abstract interpreter for logic programs - Theory of logic programs - Applications of Logic programming - Introduction to Prolog, Data Structures in Prolog, Programming techniques, Control in Prolog
Text Book(s)
1. "Programming Languages - Design and Implementation", Terrence W. Pratt and Marvin V. Zelkowitz, Fourth Edition, Prentice Hall India, 2000
References
1. " Programming Language Fundamentals by example", D.E. Stevenson, CRC Press, 2006.