情報とコンピュータ 静岡大学工学部 安藤和敏 2006.01.16.

Slides:



Advertisements
Similar presentations
情報とコンピュータ 静岡大学工学部 安藤和敏 1章 プログラミング入門 ― 決定木のコーディング.
Advertisements

プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
比較プログラム言語論 平成16年4月28日 森田 彦.
自然言語処理:第3回 1.前回の確認 2.構文解析 3.格文法.
ことばとコンピュータ 2007年度1学期 第13回.
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
東京工科大学 コンピュータサイエンス学部 亀田弘之
言語体系とコンピュータ 第6回.
演習3 最終発表 情報科学科4年 山崎孝裕.
情報とコンピュータ 静岡大学工学部 安藤和敏
東京工科大学 コンピュータサイエンス学部 亀田弘之
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
1.自然言語処理システム 2.単語と形態素 3.文節と係り受け
情報科学1(G1) 2016年度.
第6章 ユニフィケーション解析 ユニフィケーション解析とは?
数理論理学 第1回 茨城大学工学部情報工学科 佐々木 稔.
形態素解析および係り受け解析・主語を判別
言語処理系(8) 金子敬一.
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
エージェントアプローチ 人工知能 7章・8章 B4 片渕 08/07/18.
動詞の共起パターンを用いた 動作性名詞の述語項構造解析
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
言語プロセッサ2007 平成19年9月26日(水) (Ver.2 平成19年10月3日変更)
FlexとBison+アルファ -実習編-
6.2.4 辞書項目(1) 辞書項目にも、語に対するDAGを与える。
情報リテラシー2014 part 5/5 (亀田担当分最終回)
東京工科大学 コンピュータサイエンス学部 亀田弘之
情報とコンピュータ 静岡大学工学部 安藤和敏
前回の練習問題.
情報とコンピュータ 静岡大学工学部 安藤和敏
自然言語処理2016 -平成28年11月7日・14日(No.6&7)-
情報とコンピュータ 静岡大学工学部 安藤和敏
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
東京工科大学 コンピュータサイエンス学部 亀田弘之
比較プログラム言語論 平成17年5月11日 森田 彦.
東京工科大学 コンピュータサイエンス学部 亀田弘之
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
情報とコンピュータ 静岡大学工学部 安藤和敏
東京工科大学 コンピュータサイエンス学部 亀田弘之
より具体的に 相手に伝えよう2.
C言語 はじめに 2016年 吉田研究室.
情報とコンピュータ 静岡大学工学部 安藤和敏
東京工科大学 コンピュータサイエンス学部 亀田弘之
文法と言語 ー文脈自由文法とLR構文解析ー
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
東京工科大学 コンピュータサイエンス学部 亀田弘之
コンピュータアーキテクチャ 第 5 回.
データ解析 静岡大学工学部 安藤和敏
情報とコンピュータ 静岡大学工学部 安藤和敏
4.プッシュダウンオートマトンと 文脈自由文法の等価性
コンピュータアーキテクチャ 第 5 回.
より具体的に 相手に伝えよう.
言語プロセッサ 第12日目 平成20年1月9日.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
情報とコンピュータ 静岡大学工学部 安藤和敏
比較プログラム言語論 平成16年5月12日 森田 彦.
形態素解析と構文解析 金子邦彦.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
mi-8. 自然言語処理 人工知能を演習で学ぶシリーズ(8)
C#プログラミング実習 第1回.
1.2 言語処理の諸観点 (1)言語処理の利用分野
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
情報処理Ⅱ 第3回 2004年10月19日(火).
東京工科大学 コンピュータサイエンス学部 亀田弘之
第1章 文字の表示と計算 printfと演算子をやります.
情報とコンピュータ 静岡大学工学部 安藤和敏
Presentation transcript:

情報とコンピュータ 静岡大学工学部 安藤和敏 2006.01.16

10章 言語の翻訳 意味論 前回やった構文生成規則を元に,Pascalプログラムがどのようにアセンブリ言語に翻訳されるかを見る.

プログラムが実行されるまで Pascalプログラム アセンブリ言語のプログラム 機械語プログラム 電気回路による実行 Z := X + Y コンパイル COPY AX,X ADD AX,Y COPY CN1,AX COPY AX,CN1 COPY Z,AX アセンブリ言語のプログラム 0010110100100 0110101010001 0011001000100 1100100101101 0110110100001 機械語プログラム 電気回路による実行

Pascalからアセンブリ言語への翻訳 コンパイル = Pascal アセンブリ言語 翻訳 Z := X + Y COPY AX,X ADD AX,Y COPY CN1,AX COPY AX,CN1 COPY Z,AX Z := X + Y コンパイル = Pascal アセンブリ言語 翻訳

文の解析 逆に,X := (Y * X) のような文が与えられたときに,構文生成規則を逆に適用することによって,文の解析ができる. (R1の逆を使う.) <i>1 := (<i>2 * <i>1) (R2の逆を使う.) <i>1 := (<e>4 + <e>5) (R5の逆を使う.) <i>1 := <e>6 (R1の逆を使う.) <s>7

英文の構文解析の例題 I love you. I love you (E17の逆を使う.) <名詞>1 <動詞>3 <名詞>2 (E6の逆を使う.) <主語>4 <動詞>3 <名詞>2 (E9の逆を使う.) <主語>4 <動詞>3 <目的語>5 (E12の逆を使う.) <主語>1 <述語>6 <目的語>5 (E3の逆を使う.) <文>7

英文の構文解析の例題 I love you. <文>1 (E3) <主語>2 <述語>3 <目的語>4 (E12) <主語>2 <動詞>5 <目的語>4 (E9) <主語>2 <動詞>5 <名詞>6 (E6) <名詞>7 <動詞>5 <名詞>6 (E18) <名詞>7 love <名詞>6 (E17を2回) I love you

M(<目的語>4) = M(<名詞>6) M(<主語>2) = M(<名詞>7) 意味論規則(1) 構文 E3: <文>1 <主語>2 <述語>3 <目的語>4 意味 M(<主語>2)は M(<目的語>4)を M(<述語>3) 構文 E12: <述語>3 <動詞>5 意味 M(<述語>3) = M(<動詞>5) 構文 E9: <目的語>4 <名詞>6 意味 M(<目的語>4) = M(<名詞>6) 構文 E6: <主語>2 <名詞>7 意味 M(<主語>2) = M(<名詞>7)

意味論規則(2) 構文 E18: <動詞>5 love 意味 M(<動詞>5) = 愛する 構文 E17: <名詞>7 I 意味 M(<名詞>7) = 私 構文 E17: <名詞>6 you 意味 M(<名詞>6) = あなた

M(<目的語>4) = M(<名詞>6) M(<主語>2) = M(<名詞>7) 意味論規則の適用 (E3) M(<主語>2)は M(<目的語>4)を M(<述語>3) (E12) M(<述語>3) = M(<動詞>5) (E9) M(<目的語>4) = M(<名詞>6) (E6) M(<主語>2) = M(<名詞>7) (E18) M(<動詞>5) = 愛する (E17) M(<名詞>7) = 私 (E17) M(<名詞>6) = あなた M(<名詞>7) 私 M(<主語>2) は M(<目的語>4) M(<名詞>6) あなた を M(<述語>3) M(<動詞>5) 愛する

<i>2 := <e>3 <i>2 := <e>3 例題(X := Y の翻訳) 導出 構文生成規則 <s>1 R3: <s>1 <i>2 := <e>3 <i>2 := <e>3 R1: <i>2 X X := <e>3 R2: <e>3 <i>4 X := <i>4 R1: <i>4 Y X := Y

意味論規則(1) 構文 R1: <i>2 X 意味 M(<i>2) = X 構文 R1: <i>4 Y M(<i>4) = Y 構文 R2: <e>3 <i>4 意味 M(<e>3) = M(<i>4) code(<e>3) = 空

<i>2 := <e>3 <i>j := <e>i 意味論規則(2) 構文 R3: <s>1 <i>2 := <e>3 意味 code(<s>1) = code(<e>3) COPY AX,M(<e>3) COPY M(<i>2),AX 構文 R3: <s>k <i>j := <e>i 意味 code(<s>k) = code(<e>i) COPY AX,M(<e>i) COPY M(<i>j),AX

意味論規則の適用 code(<s>1) = code(<e>3) COPY AX,M(<e>3) COPY M(<i>2),AX M(<i>2) = X M(<e>3) = M(<i>4) code(<e>3) = 空 M(<i>4) = Y code(<s>1) code(<e>3) COPY AX,M(<e>3) COPY X,AX code(<e>3) COPY AX,M(<e>3) COPY M(<i>2),AX COPY AX,Y COPY X,AX COPY AX,M(<i>4) COPY X,AX

<i>j := <e>i 意味論規則(R1,R2,R3) 構文 R1: <i>j abcde 意味 M(<i>j) = abcde 構文 R2: <e>i <i>j 意味 M(<e>i) = M(<i>j) code(<e>i) = 空 構文 R3: <s>k <i>j := <e>i 意味 code(<s>k) = code(<e>i) COPY AX,M(<e>i) COPY M(<i>j),AX

(<e>j + <e>k) 意味論規則(R4) 構文 R4: <e>i (<e>j + <e>k) 意味 M(<e>i) = createname code(<e>i) = code(<e>j) code(<e>k) COPY AX,M(<e>j) ADD AX,M(<e>k) COPY M(<e>i),AX

createname createnameは変数名を新しく作り出す. M(<e>7) = createname ... M(<e>7) = CN1 ... M(<e>9) = CN2

(<e>j * <e>k) 意味論規則(R5) 構文 R5: <e>i (<e>j * <e>k) 意味 M(<e>i) = createname code(<e>i) = code(<e>j) code(<e>k) COPY AX,M(<e>j) MUL AX,M(<e>k) COPY M(<e>i),AX

例題(Z := (X + Y) の翻訳) 導出 規則 <s>1 R3: <s>1 <i>2 := <e>3 <i>2 := <e>3 R1: <i>2 Z Z := <e>3 R4: <e>3 (<e>4 + <e>5) Z := (<e>4 + <e>5) R2: <e>4 <i>6 Z := (<i>6 + <e>5 ) R1: <i>6 X Z := (X + <e>5 ) R2: <e>5 <i>7 Z := (X + <i>7 ) R1: <i>7 Y Z := (X + Y )

<i>2 := <e>3 意味論規則の適用(1) 構文 R3: <s>1 <i>2 := <e>3 意味 code(<s>1) = code(<e>3) COPY AX,M(<e>3) COPY M(<i>2),AX code(<s>1) = code(<e>3) COPY AX,M(<e>3) COPY M(<i>2),AX

意味論規則の適用(2) 構文 R1: <i>2 Z 意味 M(<i>2) = Z code(<e>3) COPY AX,M(<e>3) COPY M(<i>2),AX = code(<e>3) COPY AX,M(<e>3) COPY Z,AX

(<e>4 + <e>5) 意味論規則の適用(3) 構文 <e>3 (<e>4 + <e>5) R4: 意味 M(<e>3) = createname code(<e>3) = code(<e>4) code(<e>5) COPY AX,M(<e>4) ADD AX,M(<e>5) COPY M(<e>3),AX code(<e>4) code(<e>5) COPY AX,M(<e>4) ADD AX,M(<e>5) COPY CN1,AX COPY AX,CN1 COPY Z,AX code(<e>3) COPY AX,M(<e>3) COPY Z,AX =

意味論規則の適用(4) 構文 R2: <e>4 <i>6 意味 M(<e>4) = M(<i>6) code(<e>4) = 空 code(<e>4) code(<e>5) COPY AX,M(<e>4) ADD AX,M(<e>5) COPY CN1,AX COPY AX,CN1 COPY Z,AX = code(<e>5) COPY AX,M(<i>6) ADD AX,M(<e>5) COPY CN1,AX COPY AX,CN1 COPY Z,AX

意味論規則の適用(5) 構文 R1: <i>6 X 意味 M(<i>6) = X code(<e>5) COPY AX,M(<i>6) ADD AX,M(<e>5) COPY CN1,AX COPY AX,CN1 COPY Z,AX = code(<e>5) COPY AX,X ADD AX,M(<e>5) COPY CN1,AX COPY AX,CN1 COPY Z,AX

意味論規則の適用(6) 構文 R2: <e>5 <i>7 意味 M(<e>5) = M(<i>7) code(<e>5) = 空 code(<e>5) COPY AX,X ADD AX,M(<e>5) COPY CN1,AX COPY AX,CN1 COPY Z,AX = COPY AX,X ADD AX,M(<i>7) COPY CN1,AX COPY AX,CN1 COPY Z,AX

意味論規則の適用(7) 構文 R1: <i>7 Y 意味 M(<i>7) = Y = COPY AX,X ADD AX,M(<i>7) COPY CN1,AX COPY AX,CN1 COPY Z,AX COPY AX,X ADD AX,Y COPY CN1,AX COPY AX,CN1 COPY Z,AX

宿題 テキスト p. 315 の練習問題1~4.