You are on page 1of 2

University of Engineering and Technology Lahore

Course Outline Report

Subject:CS-445 Programming Languages

Department: Computer Science and Engineering Printed Date: 18/09/2020

Course Description

To understand the structural and design principles of exemplary programming languages, to develop basic skills
in describing syntax, analyzing their strengths and weakness, comparing the different implementation aspects of
exemplary programming languages and modelling aspects of their paradigms.

Course Detail

Credit Hrs 3.0

Pre-requisite

Domain
CLOs Description PLOs Domain Level

M easureable Student Learning Outcomes

CLO1 Discuss the design issues of Programming languages. PLO04

CLO2 Identify the underlying grammatical models of Programming PLO03


languages.

CLO3 Compute formal properties of languages as well as their PLO03


Semantics.

Text Books

1. (Text) Robert W. Sebesta , Concepts of Programming Languages (12th Ed, or 11th International Ed.),
Pearson 2019.
2. (Reference) Tucker and Noonan, Programming Languages: Principles and Paradigms, 2nd edition, MsGraw
Hill, 2006
3. (Reference) Gabbriell and Matini, Programming Languages: Principles and Paradigms, Springer, 2010
4. (Reference) Michael L. Scott , Programming Language Pragmatics, 3rd Ed, Morgan Kaufman 2009
5. (Reference) Pratt and Zelkowitz, Programming Languages: Design and Implementation, 4th edition, Prentice
Hall, 2001
6. (Reference) Wilson and Clark, Comparative Programming Languages. 3rd Ed. Addison Wesley
7. (Reference) Peter Salus, Hand Book of Programming Languages (Vol I to IV)

Grading Policy

Tentative Weekly Lecture Plan


Week Topics CLOs
(Lec)

1 Background: Preliminaries, Why to Study Programming Languages, Application Domains CLO3

2 Intro: What is a PL, Different Classifications, Language Generations, Language CLO1


Translation

3 History: Historical Development of PLs, Compilation and Interpretation, IDE's CLO1

4 Evolution: Detailed History and Evolution of Major Programming Languages CLO1

5 Criteria: Lang Evaluation Criteria: Readibility, Writability, Reliability, Costs, What Makes a CLO2
Good Language

6 Intro: Influence and Factors in PL Design, Theory, Standards, Design Tradeoffs, Hardware CLO3
Influence and Virtual Computers

7 PL Paradigms: Structured, Object Oriented, Functional, Logic CLO2

8 Syntax: Quick Automata Revision: Grammars, Parse Tree, Derivation, Ambiguity, CLO3
Precedence & Associativity of Operators, Formal Methods to Describe Syntax, CFG, BNF,
EBNF, Syntax Graphs, Dangling Else Problem, Top Down n Bottom up Parsing, PDA's,
Recursive Descent Parsing

9 Identifiers: Variable Naming Issues, Keywords, Variables, Concept of Binding CLO1

10 Variables & Bindings: Name, Address, Value, Type, Static & Dynamic Type Binding CLO3

11 Variables & Bindings: Storage Binding & Lifetime of Variables, Type Checking, Strong CLO3
Typing, Coercion

12 Type Compatibility by name, by structure CLO3

13 Scope: Static & Dynamic Scope, Referencing Environments, Named Constants, Variable CLO3
Initialization

14 Primitive Data Types: Integer, Boolean, Decimal, Float, Char & Strings, string operations CLO1
and implementation,
User-defined ordinal types: enum & subrange, Array types, their operations &
implementation

15 Logic Programming Languages: Introduction to Prolog (If Time Permits) CLO2

16 Functional Programming Languages: Introduction to LISP (If Time Permits) CLO2

You might also like