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. Syntax and Semantics : General problem of describing syntax and semantics, formal methods of describing syntax, attribute grammars, describing the meanings of programs. (Chapter - 1) Unit - II Names, Bindings, and Scopes : Introduction, names, variables, concept of binding, scope, scope and lifetime, referencing environments, named constants. Data types : Introduction, primitive data types, character string types, user defined ordinal types, array, associative arrays, record, union, tuple types, list 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. (Chapter - 2) Unit - III Subprograms and Blocks : 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. (Chapter - 3) Unit - IV Concurrency : Introduction, introduction to subprogram level concurrency, semaphores, monitors, message passing, Java threads, concurrency in function 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#. (Chapter - 4) 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, 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. (Chapter - 5)