COL226
| COL226 | |
|---|---|
| programming Languages | |
| Credits | 5 |
| Structure | 3-0-4 |
| Pre-requisites | COL106 |
| Overlaps | COL765 |
COL226 : programming Languages
[edit]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.