Syntax and Semantics
What questions do you have? What questions does your neighbor have?

Announcements
- Use Piazza for all course communication.
- Energetically engage in discussions with your classmates to help each other on the learning activities — for your Class Participation score.
- First participation assignment is your introduction
- For course administrative things (e.g., grade issues, GitHub access issues), use private messages on Piazza to “Instructors” instead of email.
- Energetically engage in discussions with your classmates to help each other on the learning activities — for your Class Participation score.
Syllabus
Highlights
Review
What is a static analyzer?
An interpreter?
A verifier?
An optimizer?
Preliminaries: Programming Language Terminology
What is syntax versus semantics?
What is concrete versus abstract syntax?
What is a meta variable?
Preliminaries: Defining Syntax
JavaScripty Expressions
\[ \begin{array}{rrrl} \text{values} & v& \mathrel{::=}& n\mid b \\ \text{expressions} & e& \mathrel{::=}& n\mid b \mid x \mid\mathop{\mathit{uop}} e_1 \mid e_1 \mathbin{\mathit{bop}} e_2 \\ \text{unary operators} & \mathit{uop}& \mathrel{::=}& \texttt{-} \mid\texttt{!} \\ \text{binary operators} & \mathit{bop}& \mathrel{::=}& \texttt{+} \mid\texttt{-} \mid\texttt{*} \mid\texttt{/} \mid\texttt{\&\&} \mid\texttt{||} \mid\texttt{===} \mid\texttt{!==} \mid\texttt{<} \mid\texttt{<=} \mid\texttt{>} \mid\texttt{>=} \\ \text{numbers} & n \\ \text{booleans} & b \\ \text{variables} & x \end{array} \]
A grammar is …
JavaScripty Statements
\[ \begin{array}{rrrl} \text{statements} & s& \mathrel{::=}& \texttt{;} \mid x \mathrel{\texttt{=}}e \mid s_1 \mathbin{\texttt{;}} s_2 \mid\mathbf{if}\;\texttt{(}e\texttt{)}\;s_1\;\mathbf{else}\;s_2 \mid\mathbf{while}\;\texttt{(}e\texttt{)}\;s_1 \end{array} \]
Preliminaries: Operational Semantics
What is an operational semantics?
A semantic domain
\[ \begin{array}{rrrl} \text{stores} & \rho& \mathrel{::=}& \circ \mid\rho,x \mapsto v \end{array} \]
\[ \rho(x) \]
\[ \rho(x \leftarrow v) \]
\[ \rho[x \mapsto v] \]
Evaluating Expressions
\[ \rho \vdash e \Downarrow v \]
A judgment is …
A judgment form is …
A set of inference rules …
A derivation …