JNTUH Principles of Programming Languages syllabus CS 3-1 Sem R18 CS515PE

Unit-1 Preliminary Concepts

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-2 Names, Bindings, and Scopes

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-3 Subprograms and Blocks

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

Unit-4 Concurrency

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-5 Functional Programming Languages

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.

 

REFERENCES:

1. Programming Languages, 2nd Edition, A.B. Tucker, R. E. Noonan, TMH.

2. Programming Languages, K. C. Louden, 2nd Edition, Thomson, 2003

 

Course Outcomes

1. Acquire the skills for expressing syntax and semantics in formal notation

2. Identify and apply a suitable programming paradigm for a given computing application

3. Gain knowledge of and able to compare the features of various programming languages