プログラミング言語論 第10回 練習問題解答例 情報工学科 篠埜 功.

Slides:



Advertisements
Similar presentations
プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
Advertisements

統計学 第3回 西山. 第2回のまとめ 確率分布=決まっている分布の 形 期待値とは平均計算 平均=合計 ÷ 個数から卒業! 平均=割合 × 値の合計 同じ平均値でも 同じ分散や標準偏差でも.
立命館大学 情報理工学部 知能情報学科 谷口忠大. Information このスライドは「イラ ストで学ぶ人工知能概 論」を講義で活用した り,勉強会で利用した りするために提供され ているスライドです.イラ ストで学ぶ人工知能概 論.
第1章 場合の数と確率 第1節 場合の数  2  場合の数 (第2回).
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
プログラミング言語論 関数型プログラミング言語 水野嘉明
全加算回路 A, Bはそれぞれ0または1をとるとする。 下位桁からの繰り上がりをC1とする。(0または1)
第1章 数と式 第4節 集合と命題  8  集合 (第3回).
第1章 場合の数と確率 第1節 場合の数  3  順列 (第1回).
技術者/プログラマのための ラムダ計算、論理、圏 第2回
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
プログラミング論 I 行列の演算
★どんな2次方程式でも解けるようになろう! ★公式を覚えよう! ★これは覚えんばいかんぞ!
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
3 一次関数 1章 一次関数とグラフ §3 一次関数の式を求めること          (3時間).
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
プログラミング言語論 第4回 式の構文、式の評価
香川大学工学部 富永浩之 情報数学1 第5-2章 命題論理式の 同値変形とカルノー表 香川大学工学部 富永浩之
情報科学1(G1) 2016年度.
第二回 連立1次方程式の解法 内容 目標 連立1次方程式の掃出し法 初期基底を求める 連立1次方程式を掃出し法を用いてExcelで解析する
数理統計学  第8回 第2章のエクササイズ 西山.
数理統計学  第8回 西山.
情報教育論 第9回 仮定文の仕組み 政策・メディア研究科 岡田 健.
プログラミング論 II 電卓,逆ポーランド記法電卓
プログラミング 平成24年10月30日 森田 彦.
母集団と標本:基本概念 母集団パラメーターと標本統計量 標本比率の標本分布
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
プログラミング 平成25年11月5日 森田 彦.
国立情報学研究所 ソフトウェア研究系 助教授/
プログラミング言語論 第3回 BNF記法について(演習付き)
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
数理論理学 第3回 茨城大学工学部情報工学科 佐々木 稔.
第7回 条件による繰り返し.
デザイン情報学科 メディア情報設計 河原英紀
国立情報学研究所 ソフトウェア研究系 助教授/
知能システム論I(13) 行列の演算と応用(Matrix) 2008.7.8.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
数理論理学 第12回 茨城大学工学部情報工学科 佐々木 稔.
演習問題 その1 IP のネットワークである /20 について以下の問に答えよ。
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
高度情報演習1A スクリーンセーバ作成 2016年4月13日 情報工学科 篠埜 功.
データ解析 静岡大学工学部 安藤和敏
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
プログラミング入門2 第13回、14回 総合演習 情報工学科 篠埜 功.
第14回 前半:ラムダ計算(演習付) 後半:小テスト
国立情報学研究所 ソフトウェア研究系 助教授/
第2回独習Javaゼミ 第3章 セクション4~5 発表者 直江 宗紀.
論理回路 第5回
プログラミング言語論 第10回 情報工学科 篠埜 功.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
PROGRAMMING IN HASKELL
3 一次関数 1章 一次関数とグラフ §4 方程式とグラフ         (3時間).
プログラミング入門2 第5回 配列 変数宣言、初期化について
プログラミング言語論 プログラミング言語論 演習5 解答と解説 演習5 解答と解説 1 1.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
プログラミング言語論 プログラミング言語論 演習7 解答と解説 演習7 解答と解説 1.
練習問題.
練習問題.
Presentation transcript:

プログラミング言語論 第10回 練習問題解答例 情報工学科 篠埜 功

練習問題1 (問1) ラムダ式 (z. z) w 中の自由変数を求めよ。 (問2) ラムダ式 (λz. z y) ((λz. z) w) 中の自由変数を求めよ。

練習問題1解答例 (問1) ラムダ式 (z. z) w 中の自由変数を求めよ。 FV((z. z) w) = FV((z. z))  FV (w) = (FV (z) \ {z})  {w} = ({z} \ {z})  {w} = { }  {w} = {w} (問2) ラムダ式 (λz. z y) ((λz. z) w) 中の自由変数を求めよ。 FV((λz. z y) ((λz. z) w)) = FV(λz. z y)  FV((λz. z) w) = (FV (z y) \ {z})  (FV(λz. z)  FV(w)) = ((FV (z)  FV(y)) \ {z})  ((FV(z) \ {z})  {w}) = (({z}  {y}) \ {z})  (({z} \ {z})  {w}) = ({z,y} \ {z})  ({ }  {w}) = {y}  {w} = {y, w}

練習問題2 (問1) 置換 (x y) [z/x] を計算せよ。 (問2) 置換 (λy. x y) [z/x] を計算せよ。 (問3) 置換 (λy. x y) [y/x] を計算せよ。 (問4) 置換 (λy. x y) [λz. z y/x] を計算せよ。

練習問題2解答例 (問1) 置換 (x y) [z/x] を計算せよ。 (x y) [z/x] = (x [z/x]) (y [z/x]) = z y (問2) 置換 (λy. x y) [z/x] を計算せよ。 (λy. x y) [z/x] = λy. ((x y) [z/x]) = λy. ((x [z/x]) (y [z/x])) = λy. (z y) (括弧は省略可) (問3) 置換 (λy. x y) [y/x] を計算せよ。 (λy. x y) [y/x] = λz. (((x y) [z/y]) [y/x]) = λz. (((x [z/y]) (y [z/y])) [y/x]) = λz. ((x z) [y/x]) = λz. ((x [y/x]) (z [y/x])) = λz. (y z) (括弧は省略可)

練習問題2解答例(続き) (問4) 置換 (λy. x y) [λz. z y/x] を計算せよ。 (λy. x y) [λz. z y/x] = λw. (((x y) [w/y]) [λz. z y/x]) = λw. (((x [w/y]) (y [w/y])) [λz. z y/x]) = λw. ((x w) [λz. z y/x]) = λw. ((x [λz. z y/x]) (w [λz. z y/x])) = λw. ((λz. z y) w) (外側の括弧は省略可)

練習問題3 (問1) ラムダ式 (λx. x y) (λz. z) にβ変換を適用せよ。 (問2) ラムダ式 (λx. (λy. x y)) (λz. y z) にβ変換を適用せよ。 (注意)この問題では、β変換を一度だけ適用するものとする。

練習問題3解答例 (問1) ラムダ式 (λx. x y) (λz. z) にβ変換を適用せよ。 (λx. x y) (λz. z)  (x y) [λz. z/x] = (x [λz. z/x]) (y [λz. z/x]) = (λz. z) y (さらにもう一度β変換は適用可能) (問2) ラムダ式 (λx. (λy. x y)) (λz. y z) にβ変換を適用せよ。 (λx. (λy. x y)) (λz. y z)  (λy. x y) [λz. y z/x] = λz. (((x y) [z/y]) [λz. y z/x]) = λz. (((x [z/y]) (y [z/y])) [λz. y z/x]) = λz. ((x z) [λz. y z/x]) = λz. ((x [λz. y z/x]) (z [λz. y z/x])) = λz. ((λz. y z) z) (外側の括弧は省略可)

練習問題4 ラムダ式 (x. y. x y) (z. z) w は、何度か変換を行うことによってwに変換できるが、その過程を示せ。 9

練習問題4解答例 (x. y. x y) (z. z) w  (λy. (λz. z) y) w  (λy. y) w  w または (x. y. x y) (z. z) w  (λy. (λz. z) y) w  (λz. z) w  w (注意)上記において、置換を用いた記述は省略している。 10

練習問題5 ラムダ式 (λx. λy. x y) (λx. x y) wに対して、β変換を適用する箇所のないラムダ式になるまでβ変換を適用せよ。また、この例では途中で、2通りの適用可能性のあるラムダ式が出てくる。2通りのβ変換列を示せ。 11

練習問題5解答例 (x. y. x y) (λx. x y) w  (λz. (λx. x y) z) w  (λz. z y) w  w y または、  (λx. x y) w (注意)上記において、置換を用いた記述は省略している。 12