Wednesday, April 13, 2016

Theory of Programming Languages Course Outline - University of Sargodha

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.
Course Outline:
1.     The Programming Language Spectrum, Compilation and Interpretation, Programming
Environments. [TB1: Ch. 1]
2.     Programming Language Syntax: Specifying Syntax, Scanning, Parsing, Finite & Push-
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]
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]
5.     Target Machine Architecture: The Memory Hierarchy, Data Representation, Instruction
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]
7.     Data Types: Type Systems, Type Checking, Records (Structures) and Variants (Unions),
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]
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]
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]
11. Logic Languages: Logic Programming Concepts, Prolog, Logic Programming in
Perspective. [TB1: Ch. 11]
12.  Concurrency: Background and Motivation, Concurrent Programming Fundamentals,
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]
rd
          Programming Language Pragmatics by Michael L. Scott, Morgan Kaufmann; 3 Edition
(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
          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
          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
          Concepts in Programming Languages by John C. Mitchell, Cambridge University Press;
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


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