 ##  [Operational Semantics](/operational-semantics-0) 

 Definition

A formal system that defines the meaning of a programming language by giving inference rules that describe how program phrases change execution states or evaluate to values, typically presented in small-step (transition) or big-step (evaluation) styles.

 

 

 

 

 

 





## Principle

Principle

Program meaning is captured by concrete state-transforming rules: each syntactic construct is assigned transition or evaluation rules that determine how runtime states evolve or how expressions produce values.

 

 

 

 

 





## Demonstration

Demonstration

Small-step example: a relation s -&gt; s' that reduces an arithmetic expression (e.g., (1+2) → 3) or an assignment statement that updates a store (⟨x:=e,σ⟩ → ⟨skip,σ[x↦v]⟩ when e evaluates to v). Big-step example: an evaluation judgment ⟨e,σ⟩ ⇓ v that directly relates an expression and environment to a value (e.g., ⟨1+2,σ⟩ ⇓ 3).

 

 

 

 

## Misapplication

Misapplication

Treating operational rules as implementation-level timing models (deriving performance numbers from abstract steps), or using small-step rules without modelling external nondeterministic interactions and then drawing conclusions about observable I/O behaviour; conflating operational semantics with denotational equivalence proofs without relating the two formalisms.

 

 

 

 

 





## Consequence

Consequence

Provides a precise, mechanizable description of runtime behaviour useful for proving properties such as type soundness, correctness of compiler transformations (via simulation/step correspondence), and for building interpreters or test generators directly from the rules.

 

 

 

 

## Reversal

Reversal

Replace the stepwise, operational description by an axiomatic or denotational account: axiomatic semantics gives proof rules about assertions (Hoare triples) without describing execution steps; denotational semantics maps phrases to mathematical objects rather than to state transitions.

 

 

 

 

 





## Boundary

Boundary

Covers formal descriptions of language constructs, abstract machines, and evaluation relations. Does not by itself model resource usage (real-time/energy) unless extended, nor does it replace empirical implementation concerns; it excludes informal natural-language descriptions that lack formal inference rules.

 

 

 

 

 





## Semantic Tension

Semantic Tension

Tension with denotational semantics (extensional mathematical meanings) and with axiomatic semantics (proof obligations): operational semantics emphasizes concrete computation sequences while competitors emphasize abstract mathematical meaning or correctness assertions.

 

 

 

 

 





## Synthesis

Synthesis

Operational semantics is the rule-based, stepwise formalism that makes program execution explicit: by specifying how each construct transforms states or evaluates to values it yields a mechanizable foundation for reasoning about execution, proving transformations correct, and constructing interpreters, while leaving resource and observational modeling to deliberate extensions.