Credits: 5 (3-0-4)

Prerequisites: COL106

Overlaps with: COL765

Description

Value and state oriented paradigms. Translation. Notions of syntax and semantics of programming languages; introduction to operational/ natural semantics of functional and imperative languages. Data abstractions and control constructs; block-structure and scope, principles of abstraction, qualification and correspondence; parameter passing mechanisms; runtime structure and operating environment; practical and implementation issues in run-time systems and environment; abstract machines; features of functional and imperative languages; the un-typed and simply-typed Lambda calculus, type systems for programming languages including simple types and polymorphism; objects; classes and inheritance in object-oriented languages. Interactive programming and interfaces. The laboratory activities will involve building a variety of small interpreters for core languages in various paradigms. Tools such as lex and yacc will be introduced for front-end analysis.

Prerequisite Tree

flowchart TD
COL226-179[COL226]
COL106-179 --> COL100-179[COL100]
COL226-179 --> COL106-179[COL106]

classDef empty height:17px, fill:transparent, stroke:transparent;
classDef trueEmpty height:0px, width:0px;