1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚. 2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if.

Slides:



Advertisements
Similar presentations
SPSSによるHosmer-Lemeshow検定について
Advertisements

1 7.時間限定チューリングマシンと クラス P. 2 7 -1.入力サイズ チューリングマシンの入力記号 の長さ を 入力サイズという。 名称:合成数の問題 インスタンス:整数n 問:nは合成数か? 通常は、入力サイズとしてはもっとも短い表現での 長さが利用される。 例えば、次のような合成数の問題における入力サイズは、
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
9.線形写像.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
5.連立一次方程式.
相関.
1 情報量(2章). 2 物理的概念との対比1(入れ物と中 身) 塩水 塩 データ 情報 情報の量? 塩分の量! 情報の量は見た目ではわ からない。データと情報 は異なる概念。 塩分の量は見た目 ではわからない。 しかし、本質的な もの。
―本日の講義― ・平均と分散 -代表値 -ぱらつき(分散・標準偏差等) ・Excelによる演習
論理回路 第2回 今日の内容 前回の課題の説明 数の体系 – 数の表現 – 代表的な数 – 基数の変換 – 補数.
広告付き価格サービ ス 小園一正. はじめに 世の中には様々な表現方法の広告があり ます。その中でも私たち学生にとって身 近にあるものを広告媒体として取り入れ られている。 価格サービス(無料配布のルーズリー フ)を体験したことにより興味を惹かれ るきっかけとなった。主な目的は、これ.
素数判定法 2011/6/20.
公開鍵暗号系 2011/05/09.
1章 行列と行列式.
本宮市立白岩小学校. 1 はじめに 2 家庭学習プログラム開発の視点 ① 先行学習(予習)を生かした 確かな学力を形成する授業づく り ② 家庭との連携を図った家庭学習の習慣化.
プログラミングⅠ( 1 組) 第 9 回
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
プログラミング入門2 第4回 式文 代入式 論理演算子 ループの脱出、スキップ 情報工学科 篠埜 功.
3.エントロピーの性質と各種情報量.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
10.PとNP完全問題との境界.
複素数.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
アルゴリズムとデータ構造 補足資料 7-4 「単純交換ソート exsort.c 」 横浜国立大学 理工学部 数物・電子情報系学科 富井尚志.
3.プッシュダウンオートマトンと 文脈自由文法
6.符号化法(6章).
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
人工知能特論 II 第 4 回 二宮 崇 1. CCG (COMBINATORY CATEGORIAL GRAMMAR) 組合せ範疇文法 2 今日の講義の予定.
平成22年度 第4回 Let’s Enjoy English 平成22年度 第4回 Let’s Enjoy English 期日:平成22年10月30日 場所:旭川市立北光小学校 基調提言.
アルゴリズムとデータ構造 補足資料14-1 「ハッシュ法」
3.正方行列(単位行列、逆行列、対称行列、交代行列)
年度 情報数理学. 2 履修にあたって 2009 年度 大学院奇数セメスター(前期)開講 K336→ 大学院棟 D 416(次回から)教室: 時限: 火曜日3時限( 12:50 - 14:20 ) 担当 草苅良至 4/21( 火) 休講 → 補講 ?/? ? 時限 D416.
様々な情報源(4章).
プログラミング演習B ML編 第3回 2010/6/15 (コミ) 2010/6/16 (情報・知能) 住井 ~sumii/class/proenb2010/ml3/
論理回路 第1回. 今日の内容 論理回路とは? 本講義の位置づけ,達成目標 講義スケジュールと内容 受講時の注意事項 成績の評価方法.
JPN 311: Conversation and Composition 許可 (permission)
方程式を「算木」で 解いてみよう! 愛媛大学 教育学部 平田 浩一.
C言語応用 構造体.
DirectX を使った操作が簡単な2 D 格闘ゲームの制 作 ソ20003 蛯名敏規
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
プログラミング演習B ML編 第3回 2006/7/4 (通信コース) 2006/7/12 (情報コース) 住井 ~sumii/class/proenb2006/ml3/
JPN 312 (Fall 2007): Conversation and Composition 文句 ( もんく ) を言う.
HKS Analysis Log Jul 2006 Part1 D.Kawama. 第壱部 HKS Sieve Slit Analysis.
1 中野研究室 4 年ゼミのイロハ 斉藤(修士 2 年) ( 2009 年 ”4 年ゼミのイロハ ” を参考に作りました)
1 プログラミング言語論 第5回 手続き呼出し 担当:犬塚. 2 今日の講義 手続きや関数などの呼出しに関わること  手続きの宣言、手続きの定義  名前の束縛とスコープ  ブロック構造  スコープ規則  引数渡し  引数渡しと評価(計算)方式.
プログラミングⅠ( 2 組) 第 1 回 / pLB1.pptx.
8.任意のデータ構造 (グラフの表現とアルゴリズム)
プログラミング入門2 第3回 複合文、繰り返し 情報工学科 篠埜 功.
リファクタリング支援のための コードクローンに含まれる識別子の変更内容分析 井上研究室 工藤 良介 1.
タイピングゲー ム ~坂井 D 班の発表~ ~坂井 D 班の発表~. メンバー  村本 晟弥  岡本 武士  若松 健人.
第14回 プログラムの意味論と検証(3) 不動点意味論 担当:犬塚
ことばとコンピュータ 2007 年度 1 学期 第 1 回. 2 ことばとコンピュータ 授業科目名:言語情報処理論 授業題目名:ことばとコンピュータ 履修コード: 5067 教室: 323 一学期開講 授業の進め方 – 基本的に講義中心ですすめ,時々コンピュー タを使う.
プログラミング演習( 1 組) 第 8 回
1 アルゴリズムの高速化. 2 アルゴリズムにおける 大幅な性能アップ 多項式時間アルゴリズム VS 対数時間アルゴリズム (最大公約数の問題) 指数時間アルゴリズム VS 多項式時間アルゴリズム (フィボナッチ数列を求める問題)
図書館における 個人対応検索システム                03k1001 赤塚 拓巳.
音の変化を視覚化する サウンドプレイヤーの作成
プログラミングの基礎知識 プログラミングの手順と重要概念 アルゴリズム. プログラミングの手順 コーディング エディタなどでコードを記述 コンパイル・インタープリタ 実行可能な形に翻訳 デバッグ(虫取り、不具合の調整) 完成!
Self-efficacy(自己効力感)について
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
11万km上空のかぐやから見た地球. デジタル信号処理 Digital Signal Processing 2010 年度春学期 Spring Semester, 2010 担当者: 栗濱 忠司( Professor ) 第3週第3週.
今日の内容 高階関数  関数を値として扱う 関数を引数にとる 関数を返す関数 プログラミングの例題  クイックソート.
Presentation transcript:

1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚

2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if A>0 then … ? ? ? [[ A ]] [[ B ]] … [[ A+2 ]] [[ 2B+C ]] [[ A:=A+2 ]] [[ if A>0 then … ]] プログラムの構文要素プログラムの意味領域の要素

3 表示 denote, denotation  構文要素が意味として指し示しているものを、その要素 の表示( denotation )あるいは表示的意味 ( denotational meaning )あるいは外延的意味 ( extensional meaning )という。  たとえば、 「宵の明星」という語は、太陽系の第二惑星を表示する。 「赤」という語は、集合{トマト、イチゴ、社会主義国 の旗、 … }を表示する。  これと同じように、 while X>0 do … のようなプログラ ムが表示するものを、言い当てることで意味をはっきり させるのが表示的意味論( denotational semantics )。

4 対象言語=プログラミング言語 little While プログラムでも取り扱いが困難なので、もう少し小 さな次の構文の言語 little を考える。  変数 ::=A|B|・・・|Z  式::=0|変数| succ 式  文::=変数:=式| begin 文;文 end | for 式 times do 文 od 上の for 文は決まった回数 ( 式 times) だけ文を繰り返す構 文。 While は繰り返し回数が分からない、また条件式という構 文要素が増えるのでここでは簡単にするため排除した( if も同様)

5 準備  集合演算として新たな標記を1つ導入する。  集合A、Bに対して、定義域をA、値域をBとする すべての写像の集合をA → Bとかく。 A → B = {f | f :A → B } 例 A= {1,2,3}, B={0,1} としたとき、 |A → B|=|B| |A| = 2 3 =8 |(A × A) → B|=|B| |A × A| = 2 9 =512

6 プログラム要素の表示の例  構文要素 α に対して、その表示(意味)を α と書く。  括弧 は、表示的意味論で意味を表すのが 習慣。  例 1 =1. 構文的な1と、数の1の区 別をする 1+2 =3. ため数のときは、斜字体と する。

7 プログラムの意味領域  意味的対象として次の2種類(意味的領域 ; semantic domain )を考える。 自然数の集合N 環境の集合S  環境とは名前からそれが意味するものへの対応で あった。  ここでは簡単のため変数名とその値の対応のみ考 える。  ここではプログラムは自然数のみ扱うものとする。

8 意味領域と構文要素  意味領域(N=自然数の集合、S=環境の集合)によっ て、構文要素の意味の領域が定まる。  変数 変数は環境を1つ決めると、その環境における変数の値 を決める。 S → Nというタイプの写像。  式 式も環境を1つ決めると、その環境において変数の意味 が定まり、式の値が決まる。 S → Nというタイプの写 像。  文 文はその実行によって計算機の内部状態(=環境)が変 わる。つまり、 S → Sというタイプの写像。

9 意味関数  すべての式の集合をEXP、 すべての文の集合をCMDと書くことにする。 このとき、 各 e ∈EXPに意味を与える写像 E 、 各 c ∈ CMD に意味を与える写像 C を与えたい。 E : EXP→ ( S → N ) C : CMD→ ( S → S) それぞれ写像した値を、 E e, C c と表す。

10 E の定義  任意の環境 σ に対して、写像 E を次のとおり定める。 1. E 0 (σ) = 0 2. E v (σ) = σ ( v ) v はある変数 3. E succ e (σ) = E e (σ) + 1 e はある式 例 σ を変数 x, y に5、10 を対応させる環境とする。 これを σ ={ x 5, y 10 }と書くことにする。 すると、 E succ x (σ) = E x (σ) + 1 = σ(x)+1 = 5+1 = 6

11 C の定義  任意の環境 σ に対して、写像 C を次のとおり定める。 1. C v:=e (σ) = update(σ, v E e (σ)) update(σ, v a) は環境 σ 中の変数 v への割当てのみv a に 変更した結果を返す。 2. C begin c 1 ;c 2 end (σ) = C c 2 ( C c 1 (σ)) 3. C for e times do c od (σ) = iterate( C c, E e (σ), σ) iterate(c, a,σ) は σ に c を a 回施した結果を c(c( ・・・ c(σ) ・・・ )) 返す。 a回a回

12 例 プログラム Γ = y:=succ x 環境  ={ x a, y b } のとき C Γ () を求めよ。 C Γ () = update(, y E succ x () ) ここで E succ x ()= E x ()+1 =  ( x ) 1 = a 1 よって C Γ () = update(, y a 1 ) = {x a, y a 1}

13 例 プログラム Γ = begin y:=succ x; x:=y end 環境  ={ x a, y b } のとき C Γ (  ) を求め よ。 C y:=succ x () = update(, y E succ x () ) = update(, y  ( x ) 1 ) つまり、 C y:=succ x = update(, y,  ( x ) 1 ) 同様に、 C x:=y () = update(, x E y () )= update(, x  ( y ) ) つまり、 C x:=y = update(, x  ( y ) ) よって C Γ () = C begin y:=succ x; x:=y end () = C x:=y ( C y:=succ x () ) = {(update(, x  ( y ) )) {(update(, y  ( x ) 1))( { x a, y b } )})} = {update(, x  ( y ) )}( { x a, y a+1 } ) = {x a+1, y a+1 }

14 例 プログラム Γ = for x times y:=succ succ y od と 環境  ={ x a, y b }のとき C Γ (  ) を求めよ。 C Γ ()=iterate( C y:=succ succ y, E x (), ) E x ()=  ( x ) = { x a,y b }( x ) = a C y:=succ succ y () =update(, y E succ succ y () ) =update(, y (y) +2 ) E succ succ y (ρ)= E succ y () + 1 = ( E y () +1)+1=((y)+1)+1=(y) + 2 C Γ ()= iterate(.update(, y (y)+2), a, ) = {(.update(, y (y)+2)) ・・・ {(.update(, y (y)+2)) {(.update(, y (y)+2))( { x a,y b } )}} ・・・ } = {(.update(, y (y)+2)) ・・・ {(.update(, y (y)+2)) ( { x a,y b+2 } )} ・・・ } = {x a, y b+2a }

15 練習 環境  = { x a } に対し、次のプログラムの意味を与えよ。  Γ 1 = x:=succ succ succ x  Γ 2 = begin x:=succ x ; x:=succ x ; od  Γ 3 = for x times do for x times do x:=succ x od od

16 まとめ  表示的意味論は、プログラムの構文要素に直接 その意味(=数学的対象)を割り当てる。  そのための関数を定義するのが目的。  次回は再帰的プログラムに意味を与える。