JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
III Year B.Tech. CSE - I Sem L T/P/D C
4 -/-/- 4
(A50511) PRINCIPLES OF PROGRAMMING LANGUAGES
- To briefly describe various programming paradigms.
- To provide conceptual understanding of High level language design and implementation.
- To introduce the power of scripting languages.
UNIT I :
Preliminary Concepts: Reasons for studying, concepts of programming languages, Programming domains, Language Evaluation Criteria, influences on Language design, Language categories, Programming Paradigms – Imperative, Object Oriented, functional Programming , Logic Programming. Programming Language Implementation – Compilation and Virtual Machines, programming environments. Syntax and Semantics: general Problem of describing Syntax and Semantics, formal methods of describing syntax - BNF, EBNF for common programming languages features, parse trees, ambiguous grammars, attribute grammars, denotational semantics and axiomatic semantics for common programming language features.
UNIT II :
Data types: Introduction, primitive, character, user defined, array, associative, record, union, pointer and reference types, design and implementation uses related to these types. Names, Variable, concept of binding, type checking, strong typing, type compatibility, named constants, variable initialization. Expressions and Statements: Arithmetic relational and Boolean expressions, Short circuit evaluation mixed mode assignment, Assignment Statements, Control Structures – Statement Level, Compound Statements, Selection, Iteration, Unconditional Statements, guarded commands.
UNIT III :
Subprograms and Blocks: Fundamentals of sub-programs, Scope of life time of varaibles, static and dynamic scope, design issues of subprograms and operations, local referencing environments, parameter passing methods, overloaded sub-programs, generic sub-programs, parameters that are sub-program names, design issues for functions user defined overloaded operators, co routines.
UNIT IV :
Abstract Data types: Abstractions and encapsulation, introductions to data abstraction, design issues, language examples, C++ parameterized ADT, object oriented programming in small talk, C++, Java, C#, Ada 95
Concurrency: Subprogram level concurrency, semaphores, monitors, massage passing, Java threads, C# threads.
Exception handling: Exceptions, exception Propagation, Exception handler in Ada, C++ and Java.
Logic Programming Language: Introduction and overview of logic programming, basic elements of prolog, application of logic programming.
Functional Programming Languages: Introduction, fundamentals of FPL, LISP, ML, Haskell, application of Functional Programming Languages and comparison of functional and imperative Languages.
Scripting Language: Pragmatics, Key Concepts, Case Study: Python- Values and Types, Variables, Storage and Control, Bindings and Scope, Procedural Absraction, Separate Compilation, Module Library.
- Concepts of Programming Languages Robert .W. Sebesta 8/e, Pearson Education, 2008.
- Programming Language Design Concepts, D. A. Watt, Wiley dreamtech, rp-2007.
- Programming Languages, 2nd Edition, A. B. Tucker, R. E. Noonan, TMH.
- Programming Languages, K. C. Louden, 2nd Edition, Thomson, 2003.
- LISP Patric Henry Winston and Paul Horn Pearson Education.
- Programming in Prolog, W. F. Clocksin & C. S. Mellish, 5th Edition, Springer.
- Programming Python, M. Lutz, 3rd Edition, O'reilly, SPD, rp-2007.
- Core Python Programming, Chun, II Edition, Pearson Education, 2007.
- Guide to Programming with Python, Michel Dawson, Thomson, 2008
- Ability to express syntax and semantics in formal notation.
- Ability to apply suitable programming paradigm for the application.
- Gain knowledge and comparison of the features programming languages.