跳到主要内容
10.1145/3009837.3009892acm会议文章/章节视图摘要出版物页面波普尔会议记录会议集合
研究论文

模块、抽象和参数多态性

出版:2017年1月1日 出版历史

摘要

雷诺兹抽象定理是数据抽象的数学基础。他的背景是多态lambda演算。如今,许多现代语言,如ML家族,都采用了丰富的模块系统,旨在为数据抽象提供比多态lambda演算更具表现力的支持,但这类模块系统的抽象定理的类似物已经远远落后。
我们给出了支持生成函子和应用函子、高阶函子、密封和半透明签名的现代模演算的抽象定理。需要克服的主要问题是:(1)模块将类型和术语结合在一起,因此必须同时将它们视为两者,(2)对透明模块和不透明模块之间的区别进行建模的效果规程,以及(3)支持单例类型的非常丰富的类型构造函数语言。我们定义了模块的逻辑等价,并证明它与上下文等价一致。这证实了模块有利于数据抽象的民间定理。我们的所有证明都在Coq中进行了形式化。

工具书类

[1]
A.艾哈迈德和M.布鲁姆。类型闭合转换保持了观测等价性。2008年在加拿大维多利亚举行的ACM功能编程国际会议。
[2]
L.Cardelli、J.Donahue、L.Glassman、M.Jordan、B.Kalsow和G.Nelson。模块-3报告(修订版)。《技术报告52》,数字设备公司,系统研究中心,1989年11月。
[3]
K.Crary。调用值标准化的简单证明。技术报告CMU-CS-09-137,卡内基梅隆大学计算机科学学院,2009年。
[4]
D.Dreyer。理解和发展ML模块系统。2005年5月,宾夕法尼亚州匹兹堡市卡内基梅隆大学计算机科学学院博士论文。
[5]
D.Dreyer、K.Crary和R.Harper。高阶模的一种类型系统。第三十届美国计算机学会编程语言原理研讨会,第236-249页,路易斯安那州新奥尔良,2003年1月。
[6]
J.-Y.吉拉德。行政法庭解释。巴黎第七大学博士论文,1972年。
[7]
R.Harper和M.Lillibridge。具有共享的高阶模块的类型理论方法。1994年1月在俄勒冈州波特兰举行的第二十届ACM编程语言原理研讨会,第123–137页。
[8]
R.Harper和C.Stone。《证明、语言和互动:罗宾·米尔纳的论文》标准ML的类型理论解读。麻省理工学院出版社,2000年。扩展版作为CMU技术报告CMU-CS-97-147发布。R.Harper、D.MacQueen和R.Milner。标准ML.技术报告ECS-LFCS-86-2,爱丁堡大学计算机科学系,1986年3月。
[9]
R.Harper、J.C.Mitchell和E.Moggi。高阶模块和相位差。第十七届ACM编程语言原理研讨会,第341-354页,旧金山,1990年1月。
[10]
D.K.Lee、K.Crary和R.Harper。走向标准ML的机械化元理论。第三十四届ACM编程语言原理研讨会,法国尼斯,2007年1月。
[11]
X.勒罗伊。清单类型、模块和单独编译。1994年1月,俄勒冈州波特兰,第109-122页,第二十届ACM编程语言原理研讨会。
[12]
X.勒罗伊。适用函子和完全透明的高阶模。在1995年1月于旧金山举行的第二十届ACM编程语言原理研讨会上。
[13]
X.Leroy、D.Doligez、J.Garrigue、D.Rémy和J.Vouillon。OCaml系统4.03版,文档和用户手册。国家信息与自动化研究所(INRIA),2016年。
[14]
B.Liskov和J.Guttag。程序开发中的抽象和规范。麻省理工学院出版社,1986年。
[15]
D.B.MacQueen和M.Tofte。高阶函子的语义。在第五届欧洲编程研讨会上,计算机科学讲稿第788卷,409-423页。斯普林格,1994年。
[16]
P.Martin-Löf。类型的直觉理论:谓词部分。《逻辑与数学基础研究》1973年《逻辑学术讨论会论文集》第80卷第73-118页。北荷兰,1975年。
[17]
R.Milner、M.Tofte和R.Harper。《标准ML的定义》,麻省理工学院出版社,马萨诸塞州剑桥,1990年。
[18]
J.C.米切尔。关于数据表示的等价性。《人工智能与计算数学理论:纪念约翰·麦卡锡的论文》编辑V.Lifschitz,第305-330页。学术出版社,1991年。
[19]
J.C.Mitchell和G.D.Plotkin。抽象类型具有存在类型。《美国计算机学会编程语言与系统汇刊》,10(3):470–5021988年7月。
[20]
L.Paolini和S.R.D.Rocca。传递lambdacalculus的参数。信息与计算,189(1):87–1062004。
[21]
A.皮特斯。键入操作推理。编者B.C.Pierce,《类型和编程语言高级主题》,第7章,第245-289页。麻省理工学院出版社,2005年。
[22]
G.D.Plotkin。按名称调用、按值调用和lambda演算。理论计算机科学,1:125-1592975。
[23]
G.D.普洛特金。操作语义的结构方法。《DAIMI FN-19技术报告》,奥胡斯大学计算机科学系,1981年。
[24]
J.C.雷诺兹。类型、抽象和参数多态性。83年《信息处理》,第513–523页。北荷兰,1983年。IFIP第九届世界计算机大会论文集。A.Rossberg.1ML——核心和模块相结合。2015年在加拿大温哥华举行的ACM功能编程国际会议。
[25]
A.Rossberg、C.Russo和D.Dreyer。F-ing模块。《函数编程杂志》,24(5),2014年9月。
[26]
C.V.Russo。模块的类型。爱丁堡大学博士论文,1998年3月。
[27]
C.A.Stone和R.Harper。扩展等价和单例类型。ACM计算逻辑汇刊,7(4),2006年10月。早期版本出现在2000年编程语言原理研讨会上。P.Wadler。免费的定理!1989年9月在伦敦举行的第四届函数式编程语言和计算机体系结构会议上。
[28]
N.Wirth公司。模块-2编程。计算机科学的文本和专著。斯普林格,1983年。

引用人

查看全部
  • (2024)用透明性实现OCaml模块美国计算机学会程序设计语言会议录10.1145/36498188:OOPSLA1(194-222)在线发布日期:2024年4月29日
  • (2023)一种具有数据抽象和动态框架的关系程序逻辑程序设计语言与系统学报10.1145/355149744:4(1-136)在线发布日期:2023年1月10日
  • (2021)解决了存在危机:一级存在类型的类型推理美国计算机学会程序设计语言会议录10.1145/34735695:ICFP(1-29)在线发布日期:2021年8月19日
  • 显示更多引用者

索引术语

  1. 模块、抽象和参数多态性

      建议

      评论

      信息和贡献者

      问询处

      发布于

      封面图片ACM会议
      POPL’17:第44届ACM SIGPLAN编程语言原理研讨会会议记录
      2017年1月
      901页
      国际标准图书编号:9781450346603
      内政部:10.1145/3009837
      • 封面图片ACM SIGPLAN注意事项
        ACM SIGPLAN通知 第52卷第1期
        流行'17
        2017年1月
        901页
        国际标准编号:0362-1340
        EISSN公司:1558-1160
        内政部:10.1145/3093333
        期刊目录
      如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

      赞助商

      合作中

      出版商

      计算机协会

      美国纽约州纽约市

      出版历史

      出版:2017年1月1日

      权限

      请求对此文章的权限。

      检查更新

      作者标记

      1. 抽象
      2. 逻辑关系
      3. 模块
      4. 参数

      限定符

      • 研究文章

      会议

      流行'17

      接受率

      4130份提交文件的总体接受率为824份,20%

      即将召开的会议

      流行乐'25
      第52届ACM SIGPLAN编程语言原理年会
      2025年1月19日至25日
      丹佛,有限公司,美国

      贡献者

      其他指标

      文献计量学和引文

      文献计量学

      文章指标

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

      其他指标

      引文

      引用人

      查看全部
      • (2024)用透明性实现OCaml模块美国计算机学会程序设计语言会议录10.1145/36498188:OOPSLA1(194-222)在线发布日期:2024年4月29日
      • (2023)一种具有数据抽象和动态框架的关系程序逻辑程序设计语言与系统学报10.1145/355149744:4(1-136)在线发布日期:2023年1月10日
      • (2021)解决了存在危机:一级存在类型的类型推理美国计算机学会程序设计语言会议录10.1145/34735695:ICFP(1-29)在线发布日期:2021年8月19日
      • (2021)用单一性内在化代表独立性美国计算机学会程序设计语言会议录10.1145/34342935:POPL(1-30)在线发布日期:2021年1月4日
      • (2019)完全抽象的模块编译美国计算机学会程序设计语言会议录10.1145/3290323:POPL(1-29)在线发布日期:2019年1月2日
      • (2019)松弛非干涉的存在类型编程语言和系统10.1007/978-3-030-34175-6_5(73-92)在线发布日期:2019年11月18日
      • (2018)Futhark中高阶模块的静态解释:大型功能GPU编程美国计算机学会程序设计语言会议录10.1145/32367922:ICFP(1-30)在线发布日期:2018年7月30日
      • (2018)聚焦逻辑中的强和第33届ACM/IEEE计算机科学逻辑年会论文集10.1145/3209108.3209145(265-274)在线发布日期:2018年7月9日
      • (2018)大规模的无层Web编程2018年网络会议配套论文集10.1145/3184558.3185953(681-689)在线发布日期:2018年4月23日
      • (2021)作为类型的逻辑关系:程序模块的相关参数证明美国医学会杂志10.1145/347483468:6(1-47)在线发布日期:2021年10月5日
      • 显示更多引用者

      视图选项

      获取访问权限

      登录选项

      完全访问权限

      查看选项

      PDF格式

      以PDF文件查看或下载。

      PDF格式

      电子阅读器

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

      电子阅读器

      媒体

      数字

      其他

      桌子

      分享

      分享

      共享此出版物链接

      在社交媒体上分享