Jump to content

COL226: Difference between revisions

From IITD Wiki
[checked revision][checked revision]
Creating course page via bot
 
Bot: wrap bare course codes in wikilinks
 
Line 4: Line 4:
| credits = 5
| credits = 5
| credit_structure = 3-0-4
| credit_structure = 3-0-4
| pre_requisites = COL106
| pre_requisites = [[COL106]]
| overlaps = COL765
| overlaps = [[COL765]]
}}
}}


== COL226 : programming Languages ==
== COL226 : programming Languages ==
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.
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.

Latest revision as of 16:25, 14 April 2026

COL226
programming Languages
Credits 5
Structure 3-0-4
Pre-requisites COL106
Overlaps COL765

COL226 : programming Languages

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.