PPL Syllabus Copy
PPL Syllabus Copy
Course Objectives
Introduce important paradigms of programming languages
To provide conceptual understanding of high-level language design and implementation
Topics include programming paradigms; syntax and semantics; data types, expressions and
statements; subprograms and blocks; abstract data types; concurrency; functional and logic
programming languages; and scripting languages
Course Outcomes
Acquire the skills for expressing syntax and semantics in formal notation
Identify and apply a suitable programming paradigm for a given computing application
Gain knowledge of and able to compare the features of various programming languages
UNIT - I
Preliminary Concepts: Reasons for Studying Concepts of Programming Languages, Programming
Domains, Language Evaluation Criteria, Influences on Language Design, Language Categories,
Language Design Trade-Offs, Implementation Methods, Programming Environments
Syntax and Semantics: General Problem of Describing Syntax and Semantics, Formal Methods of
Describing Syntax, Attribute Grammars, Describing the Meanings of Programs
UNIT - II
Names, Bindings, and Scopes: Introduction, Names, Variables, Concept of Binding, Scope, Scope
and Lifetime, Referencing Environments, Named Constants
Data Types: Introduction, Primitive Data Types, Character String Types, User Defined Ordinal Types,
Array, Associative Arrays, Record, Union, Tuple Types, List Types, Pointer and Reference Types, Type
Checking, Strong Typing, Type Equivalence
Expressions and Statements: Arithmetic Expressions, Overloaded Operators, Type Conversions,
Relational and Boolean Expressions, Short Circuit Evaluation, Assignment Statements, Mixed-Mode
Assignment
Control Structures – Introduction, Selection Statements, Iterative Statements, Unconditional
Branching, Guarded Commands.
UNIT - III
Subprograms and Blocks: Fundamentals of Sub-Programs, Design Issues for Subprograms, Local
Referencing Environments, Parameter Passing Methods, Parameters that Are Subprograms, Calling
Subprograms Indirectly, Overloaded Subprograms, Generic Subprograms, Design Issues for
Functions, User Defined Overloaded Operators, Closures, Coroutines
Implementing Subprograms: General Semantics of Calls and Returns, Implementing Simple
Subprograms, Implementing Subprograms with Stack-Dynamic Local Variables, Nested Subprograms,
Blocks, Implementing Dynamic Scoping
Abstract Data Types: The Concept of Abstraction, Introductions to Data Abstraction, Design Issues,
Language Examples, Parameterized ADT, Encapsulation Constructs, Naming Encapsulations
80
R18 B.Tech. CSE Syllabus JNTU HYDERABAD
UNIT - IV
Concurrency: Introduction, Introduction to Subprogram Level Concurrency, Semaphores, Monitors,
Message Passing, Java Threads, Concurrency in Function Languages, Statement Level Concurrency.
Exception Handling and Event Handling: Introduction, Exception Handling in Ada, C++, Java,
Introduction to Event Handling, Event Handling with Java and C#.
UNIT - V
Functional Programming Languages: Introduction, Mathematical Functions, Fundamentals of
Functional Programming Language, LISP, Support for Functional Programming in Primarily Imperative
Languages, Comparison of Functional and Imperative Languages
Logic Programming Language: Introduction, an Overview of Logic Programming, Basic Elements of
Prolog, Applications of Logic Programming.
Scripting Language: Pragmatics, Key Concepts, Case Study: Python – Values and Types, Variables,
Storage and Control, Bindings and Scope, Procedural Abstraction, Data Abstraction, Separate
Compilation, Module Library. (Text Book 2)
TEXT BOOKS:
1. Concepts of Programming Languages Robert. W. Sebesta 10/E, Pearson Education.
2. Programming Language Design Concepts, D. A. Watt, Wiley Dreamtech, 2007.
REFERENCE BOOKS:
1. Programming Languages, 2nd Edition, A.B. Tucker, R. E. Noonan, TMH.
2. Programming Languages, K. C. Louden, 2nd Edition, Thomson, 2003
81