310249: PRINCIPLES OF PROGRAMMING LANGUAGES
Teaching scheme: Examination Scheme:
Lecturers: 3 Hours/Week Theory: 100 Marks
Prerequisites:
· Data structures and Algorithms
· Theory of Computations.
Objectives:
· To understand the basic building blocks of programming Languages.
· To Learn and understand various programming paradigms.
Unit I Introduction: 8 Hrs.
Role of programming languages, Need to study programming languages,Characteristics of Programming Languages, Introduction to various Programming languageparadigms: Procedural, Object-oriented, Functional, Logic, Concurrent, Parallel Programming,
Data Types: properties of structured and non-structured data types and objects, variables, constants, derived and abstract data types, declaration, type checking, Type conversion, Binding and binding times, scalar data type, composite data type, implementation and storage representation of data types and control flow statement.
Procedures: procedure call and return, recursive subprogram, different parameter passing methods, lifetime of variables, scope rules: static and dynamic scope, referencing environment: activation records (local, non-local, global), storage management (static and dynamic), exception and exception handling.
Unit II Procedural Programming: 6 Hrs.
Design principles, control flow: statement-oriented and block-oriented structured programming, execution steps, Desirable and undesirable characteristics of proceduralprogramming.
Procedural Programming with Pascal: Program structure, lexical elements, data types, operators and punctuators, variable and type declarations, I/O, type conversion, control structures: conditional and iterative, arrays, procedures and functions, local and global variables, nested procedures and scope rules, pointers, parameter passing, user defined data types, comparative study of C and Pascal.
Unit III Object Oriented Programming: 6 Hrs.
Design principles: objects, classes, messages and methods, implementation of object based programming.
Object Oriented Programming in Java : Program structure, Object and class declarations, constructors, inheritance, Polymorphism, access specification,interfaces, packages, exception handling, Java I/O, Java applications and applets, introduction to Java threads and multithreading, Socket programming, JDBC, Comparative study of C++ and JAVA.
Unit IV Introduction to .NET technology and C# 6 Hrs.
Brief introduction to Microsoft .NET – The Microsoft .NET platform, .NET framework, advantages, introduction to C#, type system, classes, method, properties, arrays, interfaces, delegates and event handlers, assemblies and modules, late binding, creating and executing code at run time, multithreading patterns, exception handling.
Unit V Logic Programming Paradigm : 6 Hrs.
Logic programming language model, logic statements, resolution, unification, search structures: backward and forward, applications, applications of logic programming.
Logic programming with Prolog: program structure, logic variables, syntax structure, control structure, resolution and unification, depth-first-search, backtracking, cut operator recursive rules, Prolog facilities and deficiencies.
Unit VI Functional Programming 6 Hrs.
Introduction to functional programming, lambda calculus: ambiguity, free and bound identifiers, reductions, typed lambda calculus, application of functional programming.
Functional programming in LISP: Elements of functional programming, function declaration, expression evaluation, type checking.
Text Books:
1. Roosta Seyed, “Foundations of Programming Languages Design & Implementation”, 3rd Edition, Cenage learning. ISBN-13:978-81-315-1062-9.
2. Sethi Ravi, “Programming Languages: Concepts and Constructs” Pearson Education, ISBN: 9788177584226
Reference Books:
1. Sebesta R. W., “Concepts of programming languages”, Pearson Education 2001, 4th edition.ISBN-81-317-0837-3.
2. Herbert Schildt“ The Complete Reference Java2”, 5th edition, Tata McGraw Hill, ISBN-13: 978-0-07-049543-2.3.
3. Balagurusamy E., “Programming in C#”, Tata McGraw Hill, 2002.
4. K. Venugopal, “Programming in Turbo PASCAL”, Tata McGraw Hill
5. Winston P., Klaus B., Horn P. “LISP”, 3rd Edition, Pearson Education.
6. Carl Townsend, “Programming in Turbo Prolog”, Tata McGraw Hill.