跳到主要内容
研究论文
开放式访问

完全抽象的模块编译

出版:2019年1月2日 出版历史

摘要

我们给出了一个适合编译支持密封性、生成性、半透明签名、应用函子、高阶函子和/或一级模的现代模演算的翻译。我们的翻译是第一个具有动态正确性定理的模块编译翻译。该定理指出,翻译产生的目标词在适当意义上与源词的上下文等价。该定理的一个推论是,翻译是完全抽象的。因此,翻译保留了源代码中存在的所有抽象。顺便说一句,我们还展示了模块是底层核心语言的定义扩展。我们的所有证明都在Coq中进行了形式化。

补充材料

WEBM文件 (a10-crary.webm)

工具书类

[1]
瓦尔·布雷祖·坦南(Val Breazu-Tannen)、蒂埃里·科昆德(Thierry Coquand)、卡尔·A·冈特(Carl A.Gunter)和安德烈·塞德洛夫(Andre Scedrov)。1991.作为隐性胁迫的继承。信息与计算93(1991),172-221。
[2]
卡尔·克莱里。2017.模块、抽象和参数多态性。在第四十四届ACM编程语言原理研讨会上。法国巴黎。
[3]
Karl Crary、Robert Harper和Sidd Puri,1999年。什么是递归模块?。1999年SIGPLAN编程语言设计与实现会议。亚特兰大,50-63岁。
[4]
皮埃尔·路易斯·居里和乔治·盖利。1992年,F≤中包含、最小类型和类型检查的一致性。计算机科学中的数学结构2,1(1992),55–91。
[5]
德里克·德雷尔(Derek Dreyer)。2005.了解和发展ML模块系统。博士论文。卡内基·梅隆大学计算机科学学院,宾夕法尼亚州匹兹堡。
[6]
德里克·德雷尔(Derek Dreyer)、卡尔·克莱里(Karl Crary)和罗伯特·哈珀(Robert Harper)。2003.高阶模块的类型系统。在第三十届ACM编程语言原理研讨会上。路易斯安那州新奥尔良,236-249。
[7]
马丁·埃尔斯曼。1999.模块的静态解释。1999年,ACM函数编程国际会议。法国巴黎,208-219。
[8]
马丁·埃尔斯曼(Martin Elsman)、特洛伊斯·亨利克森(Troels Henriksen)、丹尼尔·安尼科夫(Danil Annenkov)和科斯敏·欧安塞(Cosmin E.Oancea)。2018年,《Futhark高阶模块的静态解释:大规模GP U功能编程》,2018年ACM功能编程国际会议。
[9]
罗伯特·哈珀和马克·利利布里奇。1994年。共享高阶模块的类型理论方法。在第二十届ACM编程语言原理研讨会上。俄勒冈州波特兰,123-137。
[10]
罗伯特·哈珀、大卫·麦奎因和罗宾·米尔纳。1986年,标准ML.技术报告ECS-LFCS-86-2。爱丁堡大学计算机科学系。
[11]
罗伯特·哈珀和约翰·C·米切尔。1993年。《关于编程语言和系统的标准ML.ACM事务的类型结构》15,2(1993年4月),211–252。
[12]
罗伯特·哈珀、约翰·米切尔和尤金尼奥·莫吉。1990年。高阶模和相位区分。在第十七届ACM程序设计语言原理研讨会上。旧金山,341-354。
[13]
罗伯特·哈珀和格雷格·莫里塞特。1995.使用内涵类型分析编译多态性。在第二十届ACM编程语言原理研讨会上。旧金山,130-141。
[14]
罗伯特·哈珀和本杰明·皮尔斯。2005.ML-Style模块系统的设计注意事项。在类型和编程语言高级主题中,Benjamin C.Pierce(Ed.)。麻省理工学院出版社。
[15]
罗伯特·哈珀和克里斯·斯通。2000.《证明、语言和互动中标准ML的类型理论解释:罗宾·米尔纳的论文》。麻省理工学院出版社。扩展版作为CMU技术报告CMU-CS-97-147发布。
[16]
丹尼尔·K·李(Daniel K.Lee)、卡尔·克莱里(Karl Crary)和罗伯特·哈珀(Robert Harper)。2007年,迈向标准ML的机械化元理论。第三十四届ACM编程语言原理研讨会。不错,法国。
[17]
泽维尔·勒罗伊。1994.清单类型、模块和单独编译。在第二十届ACM编程语言原理研讨会上。俄勒冈州波特兰市,109-122。
[18]
泽维尔·勒罗伊。1995.适用的函数和完全透明的高阶模。在第二十届ACM编程语言原理研讨会上。旧金山。
[19]
泽维尔·勒罗伊。2003年,Objective Caml中递归模块的提案。(2003). 可在http://caml.inia.fr/pub/papers/xleroy-递归模块-03.pdf。
[20]
泽维尔·勒罗伊(Xavier Leroy)、达米安·多利盖兹(Damien Doligez)、雅克·加里格(Jacques Garrigue)、迪迪埃·雷米(Didier Rémy)和杰尔·沃伊隆(Jeróme Vouillon)。2016年,OCaml系统,4.03版,文档和用户手册。国家信息与自动化研究所(INRIA)。
[21]
大卫·麦奎恩(David MacQueen)。1986.使用依赖类型表示模块化结构。在第十三届ACM编程语言原理研讨会上。佛罗里达州圣彼得堡海滩,277-286。
[22]
David B.MacQueen和Mads Tofte。1994.高阶函数的语义。第五届欧洲编程研讨会(计算机科学讲义),第788卷。施普林格,409-423。
[23]
罗宾·米尔纳(Robin Milner)、麦德斯·托夫特(Mads Tofte)和罗伯特·哈珀(Robert Harper)。1990年,《标准ML的定义》,麻省理工学院出版社,马萨诸塞州剑桥。
[24]
约翰·米切尔(John C.Mitchell)和戈登·普洛金(Gordon D.Plotkin)。1988.抽象类型具有存在类型。ACM程序设计语言与系统汇刊10,3(1988年7月),470–502。
[25]
马可·帕特里格纳尼(Marco Patrignani)、阿马尔·艾哈迈德(Amal Ahmed)和戴夫·克拉克(Dave Clarke),2019年。安全编译的正式方法。计算。调查(2019年)。出现。
[26]
安德鲁·皮特斯。2005.类型化操作推理。在类型和编程语言高级主题中,Benjamin C.Pierce(Ed.)。麻省理工学院出版社,第7章,245-289。
[27]
安德烈亚斯·罗斯伯格(Andreas Rossberg)、克劳迪奥·拉索(Claudio Russo)和德里克·德雷尔(Derek Dreyer)。2014.F-ing模块。《函数编程杂志》24,5(2014年9月)。
[28]
克劳迪奥·拉索。1998.模块类型。博士论文。爱丁堡大学。
[29]
克劳迪奥·拉索。2000.标准ML的一级结构。《北欧计算杂志》7,4(2000)。
[30]
克劳迪奥·拉索。2001年,《标准ML的递归结构》,2001年ACM函数编程国际会议。
[31]
钟介山。2006.系统Fω和Haskell中的高阶模块。(2006年5月)。可在homes.soic.indiana购买。edu/ccshan/xlate/xlate.pdf。
[32]
钟绍。1998年,打字交叉模块编译。1998年,ACM函数编程国际会议。马里兰州巴尔的摩,141-152。
[33]
钟绍。1999.具有完全句法特征的透明模块。1999年ACM功能编程国际会议。巴黎,220-232。
[34]
克里斯托弗·斯通和罗伯特·哈珀。2000.用单纯形确定语言的类型等价性。在第二十七届ACM编程语言原理研讨会上。波士顿。作为CMU技术报告CMU-CS-99-155发布的扩展版本。
[35]
克里斯托弗·斯通和罗伯特·哈珀。2006.扩展等价和单一类型。ACM计算逻辑汇刊7,4(2006年10月)。早期版本出现在2000年编程语言原理研讨会上。

引用人

查看全部

建议

评论

信息和贡献者

问询处

发布于

封面图片美国计算机学会编程语言会议录
美国计算机学会程序设计语言会议录 第3卷,第POPL期
2019年1月
2275页
EISSN公司:2475-1421
内政部:10.1145/3302515
期刊目录
如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

出版商

计算机协会

美国纽约州纽约市

出版历史

出版:2019年1月2日
在PACMPL中发布体积,问题POPL公司

权限

请求对此文章的权限。

检查更新

徽章

作者标记

  1. 模块
  2. 完全抽象
  3. 相分离

限定符

  • 研究文章

贡献者

其他指标

文献计量学和引文

文献计量学

文章指标

  • 下载量(最近12个月)87
  • 下载次数(最近6周)18
反映截至2024年9月22日的下载量

其他指标

引文

引用人

查看全部

视图选项

查看选项

PDF格式

以PDF文件查看或下载。

PDF格式

电子阅读器

使用联机查看电子阅读器.

电子阅读器

获取访问权限

登录选项

完全访问权限

媒体

数字

其他

桌子

分享

分享

共享此出版物链接

在社交媒体上分享