CP5001 PRINCIPLES OF PROGRAMMING LANGUAGES SYLLABUS
REGULATION 2017
ME CSE - SEMESTER 2
OBJECTIVES:
- To understand and describe syntax and semantics of programming languages.
- To understand Data, Data types, and Bindings.
- To learn the concepts of functional and logical programming.
- To explore the knowledge about concurrent Programming paradigms.
UNIT I ELEMENTS OF PROGRAMMING LANGUAGES
Reasons for studying, concepts of programming languages, Language Evaluation Criteria, influences on Language design, Language categories. Programming Language Implementation – Compilation, Hybrid Implementation, Pure Interpretation and Virtual Machines. Describing Syntax and Semantics -Introduction - The General Problem of Describing Syntax-Formal Methods of Describing Syntax - Attribute Grammars - Describing the Meanings of Programs: Dynamic Semantics.
UNIT II DATA TYPES-ABSTRACTION
Introduction - Primitive Data Types- Character String Types- User-Defined Ordinal Types- Array types- Associative Arrays-Record Types- Tuple Types-List Types -Union Types - Pointer and Reference Types -Type Checking- Strong Typing -Type Equivalence - Theory and Data Types-Variables-The Concept of Binding -Scope - Scope and Lifetime - Referencing Environments - Named Constants- The Concept of Abstraction- Parameterized Abstract Data Types- Encapsulation Constructs- Naming Encapsulations
UNIT III FUNCTIONAL PROGRAMMING
Introduction- Mathematical Functions- Fundamentals of Functional Programming Languages- The First Functional Programming Language: LISP- An Introduction to Scheme- Common LISP- Haskell-F# - ML : Implicit Types- Data Types- Exception Handling in ML. Functional Programming with Lists- Scheme, a Dialect of Lisp- The Structure of Lists- List Manipulation- A Motivating Example: Differentiation- Simplification of Expressions- Storage Allocation for Lists.
UNIT IV LOGIC PROGRAMMING
Relational Logic Programming- Syntax- Basics- Facts- Rules- Syntax- Operational Semantics- Relational logic programs and SQL operations- Logic Programming- Syntax- Operational semantics- Data Structures-Meta-tools: Backtracking optimization (cuts); Unify; Meta-circular interpreters- The Origins of Prolog- Elements- of Prolog-Deficiencies of Prolog- Applications of Logic Programming.
UNIT V CONCURRENT PROGRAMMING
Parallelism in Hardware- Streams: Implicit Synchronization-Concurrency as Interleaving- Liveness Properties- Safe Access to Shared Data- Concurrency in Ada- Synchronized Access to Shared Variables- Synthesized Attributes- Attribute Grammars- Natural Semantics- Denotational Semantics -A Calculator in Scheme-Lexically Scoped Lambda Expressions- An Interpreter-Recursive Functions.
TOTAL: 45 PERIODS
OUTCOMES:
Upon completion of this course, the students will be able to
- Describe syntax and semantics of programming languages
- Explain data, data types, and basic statements of programming languages
- Design and implement subprogram constructs, Apply object - oriented, concurrency, pro and event handling programming constructs
- Develop programs in LISP, ML, and Prolog.
REFERENCES:
- Ghezzi, ―Programming Languages‖, 3rd Edition, John Wiley, 2008
- John C. Mitchell, ―Concepts in Programming Languages‖, Cambridge University Press, 2004.
- Louden, ―Programming Languages‖, 3rd Edition, 2012.
- Ravi Sethi, ―Programming Languages: Concepts and Constructs‖, 2nd Edition, Addison Wesley, 1996.
- Robert .W. Sebesta, ―Concepts of Programming Languages‖, 10th Edition, Pearson Education, 2002.
No comments:
Post a Comment