10CS666 Programming Languages syllabus for CS


Part A
Unit-1 Introduction; Names, Scopes, and Bindings 7 hours

The art of language design;Programming language spectrum; Why study programming languages? Compilation and interpretation; Programming environments. Names, scope, and bindings: The notion of binding time; Object lifetime and storage management; Scope rules; Implementing scope; The meaning of names within a scope; The binding of referencing environments; Macro expansion.

Unit-2 Control Flow 7 hours

Expression evaluation; Structured and unstructured flow; Sequencing; Selection; Iteration; Recursion; Non-determinacy

Unit-3 Data Types 6 hours

Type systems; Type checking; Records and variants; Arrays; Strings; Sets; Pointers and recursive types; Lists; Files and Input/Output; Equality testing and assignment.

Unit-4 Subroutines and Control Abstraction 6 hours

Review of stack layout; Calling sequences; Parameter passing; Generic subroutines and modules; Exception handling; Coroutines; Events.

Part B
Unit-5 Data Abstraction and Object Orientation 6 hours

Object oriented programming; Encapsulation and Inheritance; Initialization and finalization; Dynamic method binding; Multiple inheritance; Object oriented programming revisited.

Unit-6 Functional Languages, and Logic Languages 7 hours

Functional Languages:Origins; Concepts; A review/overview of scheme; Evaluation order revisited;
Higher-order functions; Functional programming in perspective.
Logic Languages: Concepts; Prolog; Logic programming in perspective.

Unit-7 Concurrency 6 hours

Background and motivation; Concurrency programming fundamentals; Implementing synchronization; Language-level mechanisms; Message passing.

Unit-8 Run-Time Program Management 7 hours

Virtual machines; Late binding of machine code; Inspection/introspection.

Last Updated: Tuesday, January 24, 2023