Skip to content

Latest commit

 

History

History
86 lines (74 loc) · 3.64 KB

226-Principles-of-Programming-Languages.org

File metadata and controls

86 lines (74 loc) · 3.64 KB

<<<CP1226>>> PRINCIPLES OF PROGRAMMING LANGUAGES

{{{credits}}}

LTPC
3003

Course Objectives

  • To understand and describe syntax and semantics of programming languages.
  • To understand Data, Data types, and Bindings.
  • To understand programming language constructs.
  • To explore object orientation, concurrency and event handling in programming languages.
  • To explore the concepts of functional and logical programming.

{{{unit}}}

Unit IElements of Programming Languages9

Preliminaries: Concepts of programming languages – Language evaluation criteria – Influences on language design – Language categories – Implementation methods – Programming environments; Evolution of programming languages; Syntax and Semantics: Introduction – The general problem of describing syntax – Formal methods of describing syntax – Attribute grammars; Describing the meanings of programs: Dynamic semantics

{{{unit}}}

Unit IIData Types and Abstraction9

Bindings and Scopes: Names – Variables – The concept of binding – Scope – Scope and lifetime – Referencing environments – Named constants; Data Types: Primitive data types – Character string types – User - defined ordinal types – Array types – Associative arrays – Record types – Tuple types – List types – Union types – Pointer and reference types – Type checking – Strong typing – Type equivalence; Data Abstraction and Encapsulation: The Concept of abstraction – Parameterized abstract data types – Encapsulation constructs – Naming encapsulations

{{{unit}}}

Unit IIIProgramming Language Constructs9

Arithmetic expressions – Relational and boolean expressions – Assignment statements – Mixed-mode assignments; Control Structures: Selection – Iterations – Branching – Guarded commands; Subprograms: Design issues – Local referencing – Parameter passing – Overloaded methods – Generic methods – Design issues for functions – User-defined overloaded operator – Closures and Coroutines

{{{unit}}}

Unit IVObject Orientation, Concurrency & Event Handling9

Object orientation: Design issues for OOP languages – Support for OOPs in C++, Java, C# and Ada; Concurrency: Subprogram-level concurrency – Semaphores – Monitors – Message passing – Threads – Statement level concurrency; Exception handling and Event handling

{{{unit}}}

Unit VFunctional & Logic Programming9

Functional Programming Languages: Mathematical functions – Fundamentals of functional programming languages – Scheme – Common LISP – Haskell; Concurrency in functional language; Logic Programming Languages: Introduction to predicate calculus – Proving theorms – Overview of logic programming – The origins of Prolog – Elements of Prolog – Deficiencies of Prolog – Applications of Logic Programming

\hfill Total: 45

Course Outcomes

After the completion of this course, students will be able to:

  • Describe syntax and semantics of programming languages. (K2)
  • Explain data, data types, and constructs of programming languages. (K2)
  • Explain object oriention, concurrency, exception and event handling in programming languages. (K2)
  • Develop programs in LISP, ML, and Prolog. (K3)

References

  1. Robert .W. Sebesta, Concepts of Programming Languages, 10th Edition, Pearson Education, 2012.
  2. Carlo Ghezzi, Mehdi Jazayeri, Programming Language Concepts, 3rd Edition, John Wiley, 2008.
  3. John C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2004.
  4. Kenneth C. Louden and Kenneth A. Lambert, Programming Languages: Principles and Practice, 3rd Edition, Cengage Learning, 2012.