Introduction
What else will be covered in this course?
- History of programming languages
- Different Language Paradigms
- Implementation and Run Time Environment
Syntax vs Semantics
- Syntax of a programming language is the form of its
expression, statements and program units.
- This is usually described by a CF grammar
- Lexical analysis - usually described by RE
- Semantics of a programming language is the meaning of the
expressions, statements and program units.
- Phases
of Compilation
Names and Attributes
- Names (identifiers) are
a fundamental abstraction in a programming language.
- Attributes are properties
associated with a name.
- Binding is the association of
a name and an attribute
- Binding time when this
association takes place
- tension between speed and flexibility.
- Static vs Dynamic properties
Some terms and issues we will cover during the semester :
- Variables
- corresponds to a memory region that holds values which
are manipulated by the program
- referred to by name
- how variables are name is specified by the lexical (syntactic)
rules
- important semantic issues relate to attributes of a variable
- Reference model vs value model
- Expressions
- order of operations
- kinds of values can the expression return
- Overloading vs Overriding
- Program organization