基础应用领域理论型理论各种意味论ロジック圈论离散-酒井政裕.ppt

基础应用领域理论型理论各种意味论ロジック圈论离散-酒井政裕.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基础应用领域理论型理论各种意味论ロジック圈论离散-酒井政裕

融合変換による最適化の 理論的基盤と正当性 酒井政裕 慶應義塾大学政策?メディア研究科 修士課程2年 自己紹介 2001年 慶應義塾大学総合政策学部入学 2005年 同卒業 2005年慶應義塾大学大学院 政策?メディア研究科 入学、現在在学中 萩野達也研究室所属 自己紹介: 活動 Haskell Lightweight Language Weekend 2004 Lightweight Language Day and Night 2005 日経ソフトウェア6月号「Haskellによる関数プログラミング入門」 Ruby-GNOME2 研究的興味 関数型言語の最適化 プログラム変換、特に融合変換の 理論的基盤とアルゴリズム 研究の背景 ソフトウェアの不具合が社会問題化するケースが増加 様々な要因 ソフトウェアが必要とされる領域の広がり ソフトウェアの高機能化?多機能化にともなう 複雑化 研究の背景 (2) ソフトウェアの信頼性が重要に 様々なレベルの方法が必要 工学的な品質管理, etc 分かり易い自明なコードが重要 性能のよいコードは複雑で分かり難い 信頼性と効率の両立は難しい 研究の目的 高度な最適化技術の実現 強力な最適化 信頼性を損なわない 信頼性と効率の両立 位置づけ 位置づけ プログラム変換と 融合変換 最適化 概念を素直に書いた単純なプログラム 分かりやすい モジュラリティーが高く、扱いやすい しかし、性能が悪いことがしばしば 最適化が必要 コンパイラによる最適化 ハンドチューニング ハンドチューニングの問題 その過程でバグが混入する可能性 結果のプログラムは 複雑で保守が困難 モジュラリティーが低く再利用が困難 信頼性を損なう 最適化のための別アプローチが必要! プログラム変換 数学的(代数的)な性質を用いる最適化 例) a×3 + a×2 = { 分配則 } a×(3+2) = { calculation } a×5 同じ意味で性能のよいプログラムへ変換 中にはオーダが変わるような場合も 融合変換 プログラム変換の一種 複数のパスからなるプログラム わかりやすいが 中間データが存在し、効率が悪い これを単一のパスに変換 融合変換の例 add(vector A, vector B) { vector tmp; for (int i = 0; i A.dim; i++) { tmp[i] = A[i] + B[i]; } return tmp; } add(add(A,B), C); 二回ループを回す必要 融合変換の例 add3(vector A, vector B, vector C) { vector tmp; for (int i = 0; i A.dim; i++) { tmp[i] = A[i] + B[i] + C[i]; } return tmp; } add3(A,B,C); 一回のループですむ 融合変換 (2) 主に関数型言語で用いられる 中間データ構造を生成しないことによる、空間効率の向上 これまで離れていたコードが接することにより、更なる最適化が適用可能に 時間効率も向上 関数型言語 数学的な関数に基づいた言語 (原則的に)副作用がない 等しい式は自由に置き換えが可能 数学的な取り扱いが容易 例: Haskell, ML, Lisp なぜ関数型言語か? 数学的に厳密な議論をしたい 現状の一般的な命令型言語では難しい 代数的性質が簡単に利用できる 命令型言語では特別な解析が必要 ? そこで、とりあえず関数型言語に特化 関数型言語の代数的性質(例) map 関数 map f [a, b, …] = [f a, f b, …] concat 関数 concat [[a,b], [c], [d,e], ..] = [a,b,c,d,e,…] map f . map g = map (f . g) (map f) . concat = concat . (map (map f)) 融合変換の理論 圏論 圏論によるデータ型と帰納的定義 一意性による等式の導出 融合変換の難しさ 圏論 対象と射(矢印)による抽象化 プログラムを扱うのに便利な概念を提供 等式を図式で表現 Catamorphism X, f, g に対して以下を満たす h が一意に存在。 fold(f,g) で表す h . 0 = f h . s = g . h Ca

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档