- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mlコードによる型推論の例
Resume 紹介者: 神戸 : A Theory of Type Polymorphism in Programming
Robin Milner
Journal of Computer and System Science 17, 348-375 1978
概要
歴史
型なし言語
型なしで構造を処理するプログラミング言語。
様々なオブジェクトを処理できる手続きが書ける。
一方、わかりにくいバグを見つけなければならなくなる。
例(LISP):整数アトムにCDRを作用させる。
型付言語
手続きの型指定により上記のようなスタイルは排除される(ALGOL68)。
手続きの型指定が曖昧な言語では上述のような柔軟性を不完全ながら利用可(ALGOL60)。
目的
表 1: 多態(Polymorphism)
universal パラメタ付き型(parametric) 包含(inclusion)、継承 adhoc 多重定義(overloading) 型強制(coercion) (この分類はCaradelliWegner[1985]、紹介論文中ではparametricとadhocについてのみ触れていて、型強制は名前の「多重定義」と考えられている。)
主にparametricなpolymorphismを扱う。
上記の型なし言語のような型に関する柔軟性とプログラムの堅牢性の両立。
理論だけでなく実用性もある。
例:MLの型検査の実装
手法
コンパイル時型検査: コンパイル時に型を調べる。→実行効率のため
型推論: 多くの自明でないプログラムにおいて、全く型を明示しなくても文脈から推論できる。(しかし、ユーザー定義の型をその型の演算と共に定義する場合は除く。)→変数宣言や引数の型を定義するのは別の問題。+型推論は型を明示した型検査と比しても十分簡潔
多態主導: 他では多態手続きの定義に型パラメータを利用するが、ここでは多態な基本演算(代入、関数呼び出し、対や組の作成、リスト処理演算子)を利用して自然に定義する。基本演算の持つ型制約と変数の宣言/使用からプログラムのフレーズの型を決定。例: 手続き定義は多態だが、呼び出された際の引数の型と結果の型は文脈から単態に定まる。
以上は命令型言語にも文法的には適用可能だと考えられるし、命令型でない部分言語にも)
概要
MLコードによる型推論の例
例1: map関数
例2: タグつけ
概念の定義
well typing(正しい型付け)
Semantic Soundness定理
型付けアルゴリズムの提示
アルゴリズムW
Syntactic Soundness定理(アルゴリズムWの正しさを保証する)
Wを模倣する改良型アルゴリズムG
代入を扱うためのSemantic Soundness定理の拡張
MLコードによる型推論の例
型についての連立方程式を解くと考える。
例1: map関数
定義
letrec map f,m if null m then nil
else cons f hd m , map f, tl m
期待される型
α→β ×α list →β list
αとβは型変数
利用されている演算の型の定義
null: α list→bool
nil: α list
hd: α list→α
tl: α list→α list
cons: α × α list → α list
αは型変数
型の連立方程式
利用している演算の定義から:
σnull τ1list→bool
σnil τ2list
σhd τ3list→τ3
σtl τ4list→τ4list
σcons τ5×τ5list →τ5list
ここで関数定義から:
σmap σt×σm→ρ1 関数mapの仮引数から
σnull σm→bool(リスト演算nullの具体化)
σhd σm→ρ2(リスト演算hdの具体化)
σtl σm→ρ3(リスト演算tlの具体化)
σf ρ2→ρ4(関数f)
σmap σt×ρ3→ρ5(関数mapの再帰呼び出し)
σcons ρ4×ρ5→ρ6(consの具体化)
ρ1 σnull ρ6(if文の性質)
以上をRobinsonのUnificationアルゴリズムによって解くと
σmap γ→δ ×γlist→δlist
が得られる。
mapの具体化
以下のような変数と関数があるとき、
tokl: tok list
length: tok→int
sqroot: int→real
以下の式に現われる2つのmapは:
map sqroot, map length,tokl
以下のように具体化される:
tok→int ×tok list →int list
您可能关注的文档
- 2016年第一季度土地评估机构报告抽查评议结果.doc
- 2016年第一季度,中国人力资源市场信息监测中心对101个城市[本季度.doc
- 2016年第二季度各类食品监督抽检结果汇总表.doc
- 20中石宝庆--五大发展理念引领全面建成小康.ppt.ppt
- 2016馬來西亞臺灣高教展參展配合事項-台灣公私立大學校院海外聯合.ppt
- 23我家跨上了信息高速路.ppt.ppt
- 2正项级数.doc
- 2證據的多樣性.ppt.ppt
- 2滚动轴承内、外径及相配轴颈、外壳孔的公差带一.ppt
- 2.推論プロセスでの落とし穴 1)帰納的推論 ifty.ppt
- 2025辽宁能源控股集团所属抚矿集团招聘113人备考题库及答案详解(夺冠系列).docx
- 2025福建福州市公安局仓山分局招聘警务辅助人员20人备考题库及参考答案详解一套.docx
- 2025甘肃平凉市事业单位招聘工作人员172人备考题库完整参考答案详解.docx
- 2026中国地震局事业单位公开招聘备考题库(235人)及参考答案详解1套.docx
- 2025长安医院招聘备考题库(28人)及答案详解(精选题).docx
- 2025福建福州市司法局社区矫正管理局招聘2人备考题库附答案详解(模拟题).docx
- 2025西藏自治区山南市面向湖北专项招募三支一扶人员面谈备考题库附答案详解.docx
- 2025湖南长沙宁乡市面向全国引进选拔生30人备考题库附答案详解(名师推荐).docx
- 2025贵州黔西南州望谟县三支一扶人员年度考核及期满考核结果备考题库及答案详解参考.docx
- 2025秋季广东深圳市福田区公办学校面向2025年应届毕业生招聘教师157人备考题库附答案详解(名师.docx
最近下载
- 四川省泸州市泸州2024-2025学年高二上学期1月期末考试语文试题含答案.docx VIP
- ★《食品安全监督管理学》最新版教案★(孙晓红李云主编版)科学出版社.docx VIP
- 人教A版2024-2025学年高中数学必修第一册期末试卷及答案.pdf VIP
- 2025林地分等定级规程.pdf
- 图集04S206自动喷水与水喷雾灭火设施安装.pptx VIP
- 浙江师范大学《高等数学A》2025-2026学年期末考试试卷(A)卷.docx VIP
- 企业合规性审查目录.docx VIP
- 多旋翼无人机操控理论考试题库及完整答案.docx VIP
- 危险货物道路运输企业安全管理规范(交运规〔2025〕6号).docx VIP
- 焊工岗前安全培训教育课件.pptx VIP
原创力文档


文档评论(0)