Course Log - Theory of Programming Languages
Course Log - Theory of Programming Languages
Reference
Material
Tools and
Technologies
Design skills /
techniques
Page 1 of 6
Assessment Assessment Weight Used to attain CLO Assessment Weight Used to attain CLO
Criteria Assignment CLO3, CLO4 Quiz CLO1, CLO2
(100%) Lab Project / Presentation CLO3, CLO4
Attendance - Participation -
Mid Term CLO1, CLO2, CLO3 Final CLO1, CLO2, CLO3,
CLO4
Other 1 0% - Other 2 0% -
Methods of Quizzes, Assignments, Mid/Final exam
Evaluation
Notes
COURSE CONTENTS
Week Topic Lecture Lecture Contents Relation Lecture Material Class Tasks
No. No. with CLO Activity
W1. Introduction to L1. − Reason for studying the concepts of CLO1 Ch-1.1, 1.3
Theory of programming languages,
Programming L2. − Language Evaluation criteria CLO1 Ch-1.4, 1.5, 1.6, 1.7.1
Languages and − Influences on Language Design
their Evolution − imperative languages
− Language Design Trade-Offs
− Compilation
− Lexical Analyzer
− Syntax Analyzer
W2. Evolution of Major L3. − Fortran, Lisp, Algol, Cobol, Basic, PL, Snobol, Ch-2.3 – 2.14
Programming Prolog, Functional programming, OOP, Smalltalk,
Languages C++, Java, Scripting Languages
L4. − Snobol, Simula, Prolog, OOP, Scripting, Markup Ch-2.15-2.20
W3. Describing Syntax L5. − The role of Syntax Analyzer CLO3 Ch-3.1, 3.2, 3.3.1-
and Semantics − Formal Methods of describing Syntax 3.3.6
− Context Free Grammars
− Grammars and Derivations
− Parse Trees
L6. − Describing the meanings of programs, Dynamin CLO2 Ch-3.4, 3.5 Assignment 1- Evolution
Semantics of Programming
Languages
W4. Lexical and Syntax L7. − Role of lexical Analyzer of compiler CLO3 Ch-4.1, 4.2 Quiz 1 Task-Design automata
Analysis − Lexical Analysis that accepts strings
from a particular
language
L8. − The Parsing Problem CLO2 Ch-4.3
W5. Names, Bindings L9. − Concept of Binding, CLO1 Ch-5.1, 5.2, 5.3, 5.4 Task-Present the role of
Scope − Object lifetime and storage mechanism a parser
− Binding of attributes to variables
− Static Type Binding
− Dynamic Type Binding
− Storage Bindings and Lifetime
− Static Variables
− Stack Dynamic Variables
− Implicit and Explicit Heap Dynamic Variables
L10. − Scope Rules, Referencing Environments CLO1 Ch-5.5, 5.6 Assignment 2- Design a
language using Context
Free Grammars, make a
Page 3 of 6
derivation and a parse
tree for certain
statements
W6. Data Types L11. − Primitive data types, CLO1 Ch- 6.1, 6.2, 6.3, 6.4 Quiz 2
− Numeric Types: Integer, Float, Double, Decimal
− Boolean Types
− Character Types
− Character String Types
− Enumeration Types
L12. − Array Types CLO1 Ch- 6.5, 6.6, 6.7, 6.8,
− Arrays and Indices 6.11.4, 6.11.5
− Array Initializations
− Array Operations
− Record Types
− Tuple Types
− Pointer and Reference types,
W7. Expressions and L13. − Arithmetic Expressions, CLO1 Ch-7.1, 7.2
Assignment − Operator Precedence
Statements − Parentheses
− Associativity
− Conditional Expression
− Side Effects
− Referential Transparency
L14. − Type Conversions CLO1 Ch-7.4, 7.5, 7.7
− Relational and Boolean Expressions,
− Assignment Statements
− Compound Assignment Operator
− Unary Assignment Operator
W8. Statement level L15. − Selection Statements, Iterative Statements Ch-8.2, 8.3
Control Structures L16. − Unconditional Branching, Guarded Commands Ch-3.4, 8.5
W9. Subprograms L17. − Design Issues, Parameter Passing, Calling CLO1 Ch-9.2, 9.2, 9.3, 9.4,
Subprograms Indirectly, Overloaded and Generic 9.5, 9.6, 9.7
Subprograms, User defined Overloaded
Operators
L18. − Implementing Subprograms with Stack-Dynamic CLO1 Ch- 10.2, 10.3, 10.4,
Local Variables, Nested Subprograms, Blocks 10.5, 10.6
W10. Mid Term Exam L19. − Mid Term Examination CLO1,2
Week L20. −
W11. Abstract Data L21. − Concept of Abstraction CLO1 Ch- 11.1, 11.2, 11.3,
Types and Object 11.4, 11.5, 11.6, 117
Oriented L22. − Object Oriented Programming CLO1 Ch- 12.1, 12.2, 12.3,
Programming 12.4, 12.5
W12. Functional L23. − Introduction to Functional Programming CLO1,3 Ch- 15.2, 15.3, 15.4,
Programming 15.5, 15.6
Languages L24. − Scheme, Lisp, ML, Haskell, F# CLO1,3 Ch- 15.7, 15.8, 15.9,
15.10, 15.11
W13. Logic Programming L25. − Predicate Calculus CLO1,3 Ch-16.2, 16.3, 16.4,
Languages 16.5, 16.6
L26. − Prolog, Applications of logic Programming CLO1,3 Ch-16.7, 16.8
W14. Scripting L27. − Characteristics of Scripting Languages CLO1,3 Michael Ch- 14.1,
Languages 14.2, 14.3
L28. − Scripting World wide Web CLO1,3 Michael Ch- 14.4
W15. Code Improvement L29. − Phases of Code Improvement CLO1,4 Michael Ch- 17.1,
− Redundancy Elimination 17.2, 17.3, 17.4
L30. − Loop Improvement CLO1,4 Michael Ch- 17.5,
− - Instruction Scheduling 17.6, 17.7
W16. Concurrency L31. − Subprogram level Concurrency, Semaphores CLO1 Ch-13.1, 13.2, 13.3,
Monitors, Message Passing 13.4
L32. − Java Threads, C# Threads, CLO1 Ch-13.7, 13.8, 13.9,
13.10
W17. Exception and L33. − Exception handling in C++, java CLO1,4 Ch-14.1, 14.2, 14.3,
Event Handling 14.4
L34. − Event handling in C++, java CLO1,4 Ch-14.5, 14.6, 14.7
W18. Final Term Exam − Final examination CLO1, 2, 3,
4, 5
Page 6 of 6