JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD

CS702PC: PRINCIPLES OF PROGRAMMING LANGUAGES

B.Tech IV Year I Semester (R16)

Course Objectives:

  • To introduce the various programming paradigms.
  • To understand the evolution of programming languages.
  • To understand the concepts of OO languages, functional languages, logical and scripting languages.
  • To introduce the principles and techniques involved in design and implementation of modern programming languages.
  • To introduce the notations to describe the syntax and semantics of programming languages.
  • To introduce the concepts of concurrency control and exception handling.
  • To introduce the concepts of ADT and OOP for software development.

Course Outcomes:

  • Ability to express syntax and semantics in formal notation.
  • Ability to apply suitable programming paradigm for the application.
  • Ability to compare the features of various programming languages.
  • Able to understand the programming paradigms of modern programming languages.
  • Able to understand the concepts of ADT and OOP.
  • Ability to program in different language paradigms and evaluate their relative benefits.

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 Major Programming Languages. Syntax and Semantics: General problem of describing syntax, 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, character, string types, user defined ordinal types, array, associative arrays, record, tuple types, list types, union 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.

R16 B.TECH CSE.

UNIT - III

Subprograms: Fundamentals of subprograms, 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, co routines 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 - IV

Object Oriented Programming: Design issues for OOP, OOP in Smalltalk, C++, Java, Ada 95, Ruby, Implementation of Object-Oriented constructs. Concurrency: introduction, introduction to subprogram level concurrency, semaphores, monitors, message passing, Ada support for concurrency, Java threads, concurrency in functional 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, deficiencies 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 10th edition, Pearson Education.
  • 2. Programming Language Design Concepts, D. A. Watt, Wiley India Edition.

REFERENCE BOOK:

  • 1. Programming Languages, A.B. Tucker, R.E. Noonan, TMH.
  • 2. Programming Languages, K. C. Louden and K A Lambert., 3rd edition, Cengage Learning.
  • 3. Programming Language Concepts, C Ghezzi and M Jazayeri, Wiley India.
  • 4. Programming Languages 2nd Edition Ravi Sethi Pearson.
  • 5. Introduction to Programming Languages Arvind Kumar Bansal CRC Press. R16 B.TECH CSE.

Loading Question Papers

Fetching data from database...