Syntax and Semantics

Bor-Yuh Evan Chang

Tuesday, August 26, 2025

\(\newcommand{\TirName}[1]{\text{#1}} \newcommand{\inferlab}[3]{ \let\and\qquad \begin{array}{l} \TirName{#1} \\ \displaystyle \frac{#2}{#3} \end{array} } \newcommand{\inferright}[3]{ \let\and\qquad \displaystyle \frac{#2}{#3}\TirName{#1} } \newcommand{\inferrule}[3][]{\inferlab{#1}{#2}{#3}} \newcommand{\infer}[3][]{\inferrule[#1]{#2}{#3}} \)

Meeting 2 - 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.

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

A grammar is …

JavaScripty Statements

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} \]

Evaluating Expressions

\[ \rho \vdash e \Downarrow v \]

A judgment is …


A judgment form is …


A set of inference rules


A derivation