With effect from Academic year 2015-2016

CS 253

 

PRINCIPLES OF PROGRAMMING LANGUAGES

Instruction 4 Periods per week

Duration of University Examination 3 Hours

University Examination 75 Marks

Sessional 25 Marks

 

Course objectives:

  • TO introduce the major programming paradigms, and the principles and techniques involved in design and implementation of modern programming languages.

  • To introduce notations to describe syntax and semantics of programming languages.

  • To analyze and explain behavior of simple programs in imperative languages using concepts such as binding, scope, control structures, subprograms and parameter passing mechanisms.

  • To introduce the concepts of ADT and object oriented programming for large scale software development.

  • To introduce the concepts of concurrency control and exception handling.

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, Evolution of the Major Programming Languages.

 

Describing Syntax and Semantics: General Problem of Describing Syntax, Formal Methods of Describing Syntax, Attribute Grammars, Describing the Meaning of Programs.

 

UNIT II :

Names, Binding, Type Checking, and Scopes: Names, Variables, The Concept of Binding, Type Checking, Strong Typing, Type Compatibility, 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, Union Types, Pointer and Reference Types. 

Expressions and Assignment Statements: Arithmetic Expressions, Overloaded Operators, Type Conversions, Relational and Boolean Expressions, Short-Circuit Evaluation, Assignment Statements, Mixed- Mode Assignment.

 

UNIT III

Statement-Level Control Structures: Selection Statements, Iterative Statements, Unconditional Branching, Guarded Commands.

Subprograms: Fundamentals and Design Issues for Subprograms, Local Referencing Environments, Parameter –Passing Methods, Parameters That are Subprograms Names, Overloaded Subprograms, Generic Subprograms, Design Issues for Functions, User-Defined Overloaded Operators.

Implementing Subprograms: The 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, Introduction to Data Abstraction, Design Issues for Abstract Data Types, Language Examples, Parameterized ADT, Encapsulation Constructs, Naming Encapsulation.

UNIT IV

Object Oriented Programming: Design Issues, Object Oriented Programming in Smalltalk, C++, Java, C#, Ada 95, Ruby, The Object Model of JavaScript, Implementation of Object Oriented Constructs.

Concurrency: Subprogram level Concurrency, Semaphores, Monitors, Massage Passing, Ada Support for Concurrency, Java Threads, C# Threads, Statement-Level Concurrency.

Exception Handling and Event Handling: Introduction to Exception Handling, Exception Handling in Ada, C++ and Java, Introduction to Event Handling, Event Handling with Java.

 

UNIT V :

Functional Programming Languages: Introduction, Mathematical Functions, Fundamentals of FPL, LISP, Introduction to Scheme, COMMON LISP, ML, Haskell, Application of Functional Programming Languages and A Comparison of Functional and Imperative Languages.

Logic Programming Languages: Introduction to Predicate Calculus, Predicate Calculus and Proving Theorems, An Overview of Logic Programming. The Origins, Basic Elements and Deficiencies of Prolog, Applications of Logic Programming.

Scripting Languages: Key concepts, Case Study: Python(From the Suggested Reading 2).

 

Suggested Reading:

1. Concepts of Programming Languages Robert .W. Sebesta 8/e, Pearson

Education, 2008.

2. Programming languages –Watt, Wiley Dreamtech, 2004.

3. Programming Languages –Louden, Second Edition, Cengage, 2003.

4. Programming languages –Ghezzi, 3/e, John Wiley, 1998.

5. Programming Languages Design and Implementation – Pratt and

Zelkowitz, Fourth Edition PHI/Pearson Education, 2001.

Articles View Hits
13009328
   Tue, 11-Feb-2020, 08:38 PMPRINCIPLES OF PROGRAMMING LANGUAGES.
Powered by Joomla 1.7 Templates
Developed by MVSREC