Var を変数の集合、Op を操作名の有限集合とする。状態とは写像 σ:Var→Z をいい、状態の全体を Σ と書く。σ[x↦n] は、x の値を n に変え、ほかの変数の値を σ と同じにした状態を表す。
算術式 a、ブール式 b、命令 c を次の文法で定める(n∈Z、x∈Var、k は正の整数、m∈Op)。
abc::=n∣x∣a1+a2∣a1−a2∣a1×a2∣a1÷k::=true∣a1=a2∣a1≤a2∣¬b∣b1∧b2::=skip∣x:=a∣c1;c2∣if b then c1 else c2∣while b do c∣call m式の値 [[a]]σ∈Z、[[b]]σ∈{tt,ff} を、式の構造についての再帰で定める。[[n]]σ=n、[[x]]σ=σ(x)、[[a1+a2]]σ=[[a1]]σ+[[a2]]σ(−、× も同様)、[[a1÷k]]σ=⌊[[a1]]σ/k⌋。[[true]]σ=tt、[[a1=a2]]σ=tt となるのは [[a1]]σ=[[a2]]σ のとき(≤ も同様)、¬ と ∧ は真理値の否定と連言。ブール式 b を表明 {σ∣[[b]]σ=tt} と同一視する。a1<a2 は ¬(a2≤a1) の略記とする。
解釈 M とは、各操作名 m∈Op に関係 M(m)⊆Σ×Σ を割り当てるものをいう。解釈 M のもとでの実行関係 ⟨c,σ⟩⇓σ′ を、次の規則で生成される最小の関係とする。
(Skip)(Seq)(IfT)(WhF)⟨skip,σ⟩⇓σ(Assign)⟨x:=a,σ⟩⇓σ[x↦[[a]]σ]⟨c1;c2,σ⟩⇓σ′⟨c1,σ⟩⇓σ1⟨c2,σ1⟩⇓σ′(Call)⟨call m,σ⟩⇓σ′(σ,σ′)∈M(m)⟨if b then c1 else c2,σ⟩⇓σ′[[b]]σ=tt⟨c1,σ⟩⇓σ′(IfF)⟨if b then c1 else c2,σ⟩⇓σ′[[b]]σ=ff⟨c2,σ⟩⇓σ′⟨while b do c,σ⟩⇓σ[[b]]σ=ff(WhT)⟨while b do c,σ⟩⇓σ′[[b]]σ=tt⟨c,σ⟩⇓σ1⟨while b do c,σ1⟩⇓σ′⟨c,σ⟩⇓σ′ となる σ′ が存在するとき、c は σ から停止するという。