{{{credits}}}
L | T | P | C |
3 | 0 | 0 | 3 |
- To understand and describe syntax and semantics of programming languages.
- To understand Data, Data types, and Bindings.
- To understand programming language constructs.
- To explore object orientation, concurrency and event handling in programming languages.
- To explore the concepts of functional and logical programming.
{{{unit}}}
Unit I | Elements of Programming Languages | 9 |
Preliminaries: Concepts of programming languages – Language evaluation criteria – Influences on language design – Language categories – Implementation methods – Programming environments; Evolution of programming languages; Syntax and Semantics: Introduction – The general problem of describing syntax – Formal methods of describing syntax – Attribute grammars; Describing the meanings of programs: Dynamic semantics
{{{unit}}}
Unit II | Data Types and Abstraction | 9 |
Bindings and Scopes: Names – Variables – The concept of binding – Scope – Scope and lifetime – Referencing environments – Named constants; Data Types: Primitive data types – Character string types – User - defined ordinal types – Array types – Associative arrays – Record types – Tuple types – List types – Union types – Pointer and reference types – Type checking – Strong typing – Type equivalence; Data Abstraction and Encapsulation: The Concept of abstraction – Parameterized abstract data types – Encapsulation constructs – Naming encapsulations
{{{unit}}}
Unit III | Programming Language Constructs | 9 |
Arithmetic expressions – Relational and boolean expressions – Assignment statements – Mixed-mode assignments; Control Structures: Selection – Iterations – Branching – Guarded commands; Subprograms: Design issues – Local referencing – Parameter passing – Overloaded methods – Generic methods – Design issues for functions – User-defined overloaded operator – Closures and Coroutines
{{{unit}}}
Unit IV | Object Orientation, Concurrency & Event Handling | 9 |
Object orientation: Design issues for OOP languages – Support for OOPs in C++, Java, C# and Ada; Concurrency: Subprogram-level concurrency – Semaphores – Monitors – Message passing – Threads – Statement level concurrency; Exception handling and Event handling
{{{unit}}}
Unit V | Functional & Logic Programming | 9 |
Functional Programming Languages: Mathematical functions – Fundamentals of functional programming languages – Scheme – Common LISP – Haskell; Concurrency in functional language; Logic Programming Languages: Introduction to predicate calculus – Proving theorms – Overview of logic programming – The origins of Prolog – Elements of Prolog – Deficiencies of Prolog – Applications of Logic Programming
\hfill Total: 45
After the completion of this course, students will be able to:
- Describe syntax and semantics of programming languages. (K2)
- Explain data, data types, and constructs of programming languages. (K2)
- Explain object oriention, concurrency, exception and event handling in programming languages. (K2)
- Develop programs in LISP, ML, and Prolog. (K3)
- Robert .W. Sebesta, Concepts of Programming Languages, 10th Edition, Pearson Education, 2012.
- Carlo Ghezzi, Mehdi Jazayeri, Programming Language Concepts, 3rd Edition, John Wiley, 2008.
- John C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2004.
- Kenneth C. Louden and Kenneth A. Lambert, Programming Languages: Principles and Practice, 3rd Edition, Cengage Learning, 2012.