This course is designed to teach the basics concepts of a programming language.
Reasons for Studying Concepts of Programming Languages, Programming Domains, Language Evaluation Criteria, Influences on Language Design, Language Categories, Language Design Trade-Offs, Implementation Methods, Programming Environments, Pseudo codes.
Describing Syntax , fundamentals of BNF and Concepts of Semantics, Basic Concepts of parse tree, Names, Variables, Bindings, 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, Union Types, Pointer and Reference Types, Type Checking, Strong Typing.
Arithmetic Expressions, Overloaded Operators, Type Conversions, Relational and Boolean Expressions, Short-Circuit Evaluation, Assignment Statements, Mixed-Mode Assignment, Selection Statements, Iterative Statements, Unconditional Branching, Guarded Commands, Fundamentals of Subprograms, Design Issues for Subprograms, Local Referencing Environments.
Recap of Structured Programming through C, Basics of object-oriented programming, Functional Programming, Logic Programming, and applications of these paradigms
Design Issues for Object-Oriented Languages, Objects, Classes, Abstraction, Encapsulation, function overloading, Inheritance .