補足 言語の意味論 意味論 • プログラミング言語の意味を与える方法 – どの文面はどの意味を持つのか • 3つの方法 – 操作的意味論 (operational semantics) • 抽象機械(abstract machine)やインタプリタを定義 • Syntax directed approach ( G. Plotkin ) – 各文面単位ごとに、推論規則または公理にプログラムの文面を取り 込んだ理論体系によってプログラムの挙動を記述方法 – 公理的意味論 (axiomatic semantics) • Hoare logic – 表示的意味論 (denotational semantics) • 数学関数 状態σ • 状態とは、各変数・メモリ語の現在持つ・格納 している値のこと – 写像(関数)で表現され、σ: Loc → N (Loc は localtion, Nは数) – Xが変数であれば、σ(X)はその値 • 式の評価は数学での意味とする <a0, σ> → n0 <a1, σ> → n1 ______________________________ <a0 + a1, σ> → n0 plus n1 言語の+ operator 数学の加算 命令に対する推論規則 • Assignment <a, σ> → m __________________ <X := a, σ> → σ[X/m] • Sequencing <c0, σ> → σ’’ <c1, σ’’> → σ’ __________________________________ <c0;c1, σ> → σ’ 命令に対する推論規則(2) • Conditionals <b, σ> → true <c0, σ> → σ’ ______________________________ <if b then c0 else c1, σ> → σ’ • While-loops <b, σ> → false ______________________ <while b do c, σ> → σ <b, σ> → true <c,σ> →σ’’ <while b do c, σ’’> → σ’ _______________________________________________ <while b do c, σ> → σ’
© Copyright 2024 ExpyDoc