Principles of Programming Languages (BLGM318)
Evolution of programming languages and concepts. Syntax and semantics of programming languages. Context-free grammars. Lexical analysis. Syntax analysis. Top-down vs. bottom-up parsing. LR parsing tables. Names, scope and lifetime. Expressions. Statements. Subprogram linkage. Stack implementation of subprogram calls. Parameter passing methods. Object oriented concepts. Implementation of inheritance: virtual method tables. Concurrency. Exception handling. Functional or Logic programming.