0% found this document useful (0 votes)
98 views6 pages

Course Log - Theory of Programming Languages

This document provides a course outline for a Theory of Programming Languages course offered at Riphah International University, Lahore Campus. The course is a 3 credit hour computing core course offered in the 5th semester of BS in Computer Science and Software Engineering programs. The course objectives are to enable students to understand the design, implementation, analysis and classification of programming languages and improve their ability to learn new languages. By the end of the course students will be able to explain programming language concepts, compare different languages, and construct programs to solve problems using multiple languages. The course covers topics such as the evolution of major programming languages, describing syntax and semantics, lexical and syntax analysis, names, bindings and scope. Assessment methods include quizzes,
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
98 views6 pages

Course Log - Theory of Programming Languages

This document provides a course outline for a Theory of Programming Languages course offered at Riphah International University, Lahore Campus. The course is a 3 credit hour computing core course offered in the 5th semester of BS in Computer Science and Software Engineering programs. The course objectives are to enable students to understand the design, implementation, analysis and classification of programming languages and improve their ability to learn new languages. By the end of the course students will be able to explain programming language concepts, compare different languages, and construct programs to solve problems using multiple languages. The course covers topics such as the evolution of major programming languages, describing syntax and semantics, lexical and syntax analysis, names, bindings and scope. Assessment methods include quizzes,
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 6

Riphah International University, Lahore Campus

Riphah School of Computing & Innovation


Course Outline
Course Course Title Theory of Programming Languages
Information Course ID Course Type Computing Core
Credit hours 3 Hours per week (C-L) 3-0
Programs BS (CS), BS (SE) Preferred Semester 5th
Date 2022-09-26 Version 1.0
Offered Program(s) BS (CS) Semester Session Fall 2022
Course Instructor(s) Ayesha Kashif TA / Lab Instructor
Information QCH Telephone No. / Ext.
Email ayesha.kashif@riphah.edu.pk Class Hours
Office / Room No. Office Hours
Course
Description
Course The objective of this course is to enable students to understand;
Objectives No. Objective Relation
(CO) with PEO
CO1. the process of design, implementation, analysis, characterization and classification of PEO1
programming languages.
CO2. Students background for choosing an appropriate language will be improved. PEO4
CO3. Their ability to learn new languages will be improved. PEO4
CO4. They will get knowledge of certain programming domains, language categories, language PEO1
design trade-offs and implementation methods.
Course At the end of this course students will be able to;
Learning No. Outcome Relation BT PLO
Outcomes with PLO Level Level
(CLO) CLO1. Explain the theoretical concepts, constructs, and features of programming PLO1 C2
languages
CLO2. Show the development and evolution of different programming languages PLO1 C1
CLO3. Explain formal syntax and semantics design for a programming language PLO1 C2
CLO4. Construct programs in different languages to solve moderate level PLO3 C3
computational problem
CLO5. Compare problem solving with program improvement methods PLO2 C4
CLO6. Compare
C problem solving with different programming languages in terms PLO2 C4
of efficiency

Lecture type Lectures


Prerequisites Programming Fundamentals
Follow up
Courses
Textbook Title Edition Authors Publisher Year ISBN
Concepts of Programming Languages 12th Robert W. Pearson 2019 0134997182,97
Sebesta 80134997186
Reference Programming Language Pragmatics 4th Scott, Michael Morgan 2016 978012410409
Books Lee Kaufman 9
n

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

You might also like