Unit-I: Understand the reasons for studying programming languages, application domains where programming languages can be used, evaluation criteria languages, different categories of languages, programming language implementation and different programming environments.
Unit-II : Understand the general problem of describing syntax and semantics, formal methods of describing syntax using Backus-Naur Form, Extended Backus-Naur Form, Syntax Graphs , attribute grammars related to language syntax and dynamic semantics which describe the meaning of the expressions, statements and program units.
Unit-III: Understand the different primitive data types, string data types, user defined ordinal types, array types, associative arrays, records, union types, pointer and reference types, name forms, keywords supported by languages, variables and variable initialization, concept of binding, type checking with compatibility.
Unit-IV: Understand different types of expressions, different types of assignment statements, control statements, unconditional statements, guarded statements of languages
Unit-V: Explore the design of subprograms, including parameter-passing methods, local referencing environments, overloaded subprograms, generic sub programs and the side effects that are associated with sub programs, scope and life time of a variable, static and dynamic scopes and user defined overloaded operators with co routines.
Unit-VI: Understand data abstraction and encapsulation and differentiate the implementation of the concepts in different programming languages, understand the object oriented concepts of programming languages like SMALL TALK, C++, JAVA, C# and ADA 95. Understand various kinds of concurrency and the sub program level concurrency, semaphores, monitors, message passing, ADA support for concurrency and threads in JAVA and C#
Unit-VII: Understand exception handling, design issues of exception handling with ADA, C++, Java and the concepts of logic programming with logic programming language PROLOG.
Unit-VIII: Understand the fundamentals of functional programming languages with LISP, ML and Haskell and compare functional programming languages with imperative languages and understand scripting language concepts with a case study on PYTHON.