Course
Title: Theory of Programming Languages
Course Code: CS-4140
Course Structure: Lectures: 3/Labs: 0
Credit Hours: 3
Course Code: CS-4140
Course Structure: Lectures: 3/Labs: 0
Credit Hours: 3
Prerequisites:
CS-3131 (Theory of Automata & Formal Languages)
Course
Syllabus:
The
Programming Language Spectrum, Compilation and Interpretation, Programming
Environments.Programming Language Syntax.Names, Scopes, and Bindings.Semantic Analysis.
Target Machine Architecture. Control Flow. Data Types.Subroutines and Control
Abstraction.Data Abstraction and Object Orientation.Functional Languages.Logic
Languages.Concurrency. Scripting Languages.
Environments.Programming Language Syntax.Names, Scopes, and Bindings.Semantic Analysis.
Target Machine Architecture. Control Flow. Data Types.Subroutines and Control
Abstraction.Data Abstraction and Object Orientation.Functional Languages.Logic
Languages.Concurrency. Scripting Languages.
Course
Outline:
1.
The
Programming Language Spectrum, Compilation and Interpretation, Programming
Environments. [TB1: Ch. 1]
Environments. [TB1: Ch. 1]
2.
Programming
Language Syntax: Specifying Syntax, Scanning, Parsing, Finite & Push-
Down Automata, Grammar and Language Classes. [TB1: Ch. 2]
Down Automata, Grammar and Language Classes. [TB1: Ch. 2]
3.
Names, Scopes,
And Bindings: The Notion Of Binding Time , Object Lifetime and
Storage Management, Scope Rules, Implementing Scope, The Meaning of Names
Within a Scope, The Binding of Referencing Environments, Macro Expansion, Separate
Compilation. [TB1: Ch. 3]
Storage Management, Scope Rules, Implementing Scope, The Meaning of Names
Within a Scope, The Binding of Referencing Environments, Macro Expansion, Separate
Compilation. [TB1: Ch. 3]
4.
Semantic
Analysis: The Role of The Semantic Analyzer, Attribute Grammars,
Evaluating Attributes, Action Routines, Space Management for Attributes, Decorating a
Syntax Tree. [TB1: Ch. 4]
Evaluating Attributes, Action Routines, Space Management for Attributes, Decorating a
Syntax Tree. [TB1: Ch. 4]
5.
Target Machine
Architecture: The Memory Hierarchy, Data Representation, Instruction
Set Architecture, Architecture and Implementation, Compiling for Modern Processors.
Set Architecture, Architecture and Implementation, Compiling for Modern Processors.
6.
Control Flow:
Expression Evaluation, Structured and Unstructured Flow, Sequencing,
Selection, Iteration, Recursion, Non-Determinacy. [TB1: Ch. 6]
Selection, Iteration, Recursion, Non-Determinacy. [TB1: Ch. 6]
7.
Data Types:
Type Systems, Type Checking, Records (Structures) and Variants (Unions),
Arrays, Strings, Sets, Pointers and Recursive Types, Lists, Files and Input/Output,
Arrays, Strings, Sets, Pointers and Recursive Types, Lists, Files and Input/Output,
Equality
Testing and Assignment. [TB1: Ch. 7]
8.
Subroutines
and Control Abstraction: Review of Stack Layout, Calling Sequences,
Parameter Passing, Generic Subroutines And Modules, Exception Handling, Coroutines,
Events. [TB1: Ch. 8]
Parameter Passing, Generic Subroutines And Modules, Exception Handling, Coroutines,
Events. [TB1: Ch. 8]
9.
Data
Abstraction and Object Orientation: Object-Oriented Programming, Encapsulation
and
Inheritance, Initialization and Finalization, Dynamic Method Binding, Multiple
Inheritance, Object-Oriented Programming Revisited. [TB1: Ch. 9]
Inheritance, Object-Oriented Programming Revisited. [TB1: Ch. 9]
10.
Functional
Languages: Historical Origins, Functional Programming Concepts, A
Review/Overview of Scheme, Evaluation Order Revisited, Higher-Order Function.
Theoretical Foundations, Functional Programming In Perspective. [TB1: Ch. 10]
Review/Overview of Scheme, Evaluation Order Revisited, Higher-Order Function.
Theoretical Foundations, Functional Programming In Perspective. [TB1: Ch. 10]
11.
Logic
Languages: Logic Programming Concepts, Prolog, Logic Programming in
Perspective. [TB1: Ch. 11]
Perspective. [TB1: Ch. 11]
12.
Concurrency:
Background and Motivation, Concurrent Programming Fundamentals,
Implementing Synchronization, Language-Level Mechanisms, Message Passing. [TB1:
Ch. 12]
Implementing Synchronization, Language-Level Mechanisms, Message Passing. [TB1:
Ch. 12]
13.
Scripting
Languages: What is a Scripting Language? Problem Domains, Scripting The
World Wide Web, Innovative Features. [TB1: Ch. 13]
World Wide Web, Innovative Features. [TB1: Ch. 13]
rd
•
Programming
Language Pragmatics by Michael L. Scott, Morgan Kaufmann; 3 Edition
(April 6, 2009). ISBN-10: 0123745144
(April 6, 2009). ISBN-10: 0123745144
•
Theories of
Programming Languages by John C. Reynolds, Cambridge University Press;
1st Edition (April 2, 2009). ISBN-10: 0521106974
1st Edition (April 2, 2009). ISBN-10: 0521106974
•
Introduction
to the Theory of Programming Languages (Undergraduate Topics in
Computer Science) by Gilles Dowek and Jean-Jacques Levy, Springer; 1st Edition,
(December 15, 2010). ISBN-10: 0857290754
Computer Science) by Gilles Dowek and Jean-Jacques Levy, Springer; 1st Edition,
(December 15, 2010). ISBN-10: 0857290754
•
Seven
Languages in Seven Weeks: A Pragmatic Guide to Learning Programming
Languages (Pragmatic Programmers) by Bruce A. Tate, Pragmatic Bookshelf; 1st Edition
(November 17, 2010). ISBN-10: 193435659X
Languages (Pragmatic Programmers) by Bruce A. Tate, Pragmatic Bookshelf; 1st Edition
(November 17, 2010). ISBN-10: 193435659X
•
Concepts in
Programming Languages by John C. Mitchell, Cambridge University Press;
1st Edition (October 14, 2002). ISBN-10: 0521780985
1st Edition (October 14, 2002). ISBN-10: 0521780985
•
Advanced
Programming Language Design by Raphael A. Finkel, Addison-Wesley; 1st
Edition (December 31, 1995). ISBN-10: 0805311912
Edition (December 31, 1995). ISBN-10: 0805311912
Note: This
content is obtained from official documents of University of Sargodha and
applied on BS Computer Science for Main Campus, Sub
Campuses, and Affiliated Colleges.
0 comments:
Post a Comment