跳到主要内容
研究论文
开放式访问
可用工件/v1.1
评估的工件和可重用/v1.1

动态语言的多态类型推理

出版:2024年1月5日出版历史
跳过抽象节

摘要

我们提出了一种类型系统,它以可控的方式将,具有交集类型、并集类型和并证明其安全性。然后定义一个类型重构声音和终止的算法。这产生了一个系统,其中未注释的函数被赋予多态类型(这得益于Hindley-Milner),它可以表示他们键入的函数(由于交叉口引入规则)和这是应用先进的类型收缩技术推导出来的(多亏了工会淘汰规则)。这使系统成为一个主要的输入动态语言的候选者。

跳过补充材料部分

补充材料

工具书类

  1. 佩德罗·恩格洛和马里奥·弗洛里多。2022.使用集合统一的秩2交集类型的类型推断。计算理论方面——ICTAC 2022:第19届国际学术讨论会,格鲁吉亚第比利斯,2022年9月27日至29日,会议记录。施普林格出版社,柏林,海德堡。462–480。国际标准编号:978-3-031-17714-9https://doi.org/10.1007/978-3-031-17715-6_29谷歌学者谷歌学者
  2. 弗朗科·巴巴内拉(Franco Barbanera)、马里安吉拉·德扎尼·西安卡利尼(Mariangiola Dezani-Ciancaglini)和乌戈·德利古罗(Ugo de’Liguoro)。1995.交叉和联合类型。信息计算。,119,2(1995),202-230年6月。编号:0890-5401https://doi.org/10.1006/inco.1995.1086谷歌学者谷歌学者
  3. 维维亚娜·博诺(Viviana Bono)、贝蒂·文内里(Betti Venneri)和洛伦佐·贝蒂尼(Lorenzo Bettini)。2008.具有交集类型的类型化lambda演算。西奥。计算。科学。,398, 1-3 (2008), 95–113. https://doi.org/10.1016/j.tcs.2008.01.046谷歌学者谷歌学者
  4. 朱塞佩·卡斯塔尼亚。2023.使用并集、交集和求反类型编程。在法国编程学院,Bertrand Meyer(Ed.)。斯普林格。编号:978-3-031-34517-3 isbn 978-3-0.31-34517.3。arxiv预打印:2111.03354谷歌学者谷歌学者
  5. 朱塞佩·卡斯塔尼亚。2023.键入记录、地图和结构。程序。ACM计划。Lang.,7,ICFP(2023),第196条,9月,45页。https://doi.org/10.1145/3607838谷歌学者谷歌学者
  6. 朱塞佩·卡斯塔尼亚(Giuseppe Castagna)、纪尧姆·杜博克(Guillaume Duboc)和何塞·瓦利姆(JoséValim)。2023.长生不老药型系统的设计原则。编程的艺术、科学与工程,8,2(2023),https://doi.org/10.22152/programming-journal.org/2024/8/4ArXiv预打印:谷歌学者谷歌学者
  7. 朱塞佩·卡斯塔尼亚(Giuseppe Castagna)、维克托·兰文(Victor Lanvin)、米卡·洛朗(Mickaöl Laurent)和金·阮(Kim Nguyen)。2022.重新查看事件类型。《计算机程序设计科学》,217(2022),1781年3月10日。发行号:0167-6423https://doi.org/10.1016/j.scico.2022.102781arXiv:1907.05590。谷歌学者谷歌学者
  8. 朱塞佩·卡斯塔尼亚、米卡·洛朗和金·阮。2023.原型:动态语言的多态类型推断。https://doi.org/10.5281/zenodo.10155221谷歌学者谷歌学者
  9. 朱塞佩·卡斯塔尼亚、米卡·洛朗和金·阮。2024.动态语言的多态类型推断(扩展版)。https://doi.org/10.1145/3632882谷歌学者谷歌学者
  10. 朱塞佩·卡斯塔尼亚(Giuseppe Castagna)、米卡·洛朗(Mickaöl Laurent)、金·阮(Kim Nguyen)和马修·卢茨(Matthew Lutze)。2022.关于类型案例、联合消除和发生类型。程序。ACM计划。Lang.,6,POPL(2022),第13条,1月,31页。https://doi.org/10.1145/3498674谷歌学者谷歌学者
  11. 朱塞佩·卡斯塔尼亚(Giuseppe Castagna)、金恩恩(Kim Nguyen)、徐志武(Zhiwu Xu)和彼得罗·阿巴特(Pietro Abate)。2015.具有集合理论类型的多态函数。第二部分:局部类型推理与类型重构。第42届ACM SIGPLAN编程语言原理研讨会(POPL’15)会议记录。289–302之间。https://doi.org/10.1145/2676726.2676991谷歌学者谷歌学者
  12. 朱塞佩·卡斯塔尼亚(Giuseppe Castagna)、托马索·彼得鲁奇亚尼(Tommaso Petrucciani)和金·阮(Kim Nguyen)。2016.多态变异体的集合理论类型。在2016年ICFP第21届ACM SIGPLAN功能编程国际会议上。378–391. https://doi.org/10.1145/2951913.2951928谷歌学者谷歌学者
  13. 朱塞佩·卡斯塔尼亚和徐志武。2011.参数多态性和亚型的理论基础。在ICFP'11:第16届ACM-SIGPLAN函数式编程国际会议上。94–106. https://doi.org/10.1145/2034773.2034788谷歌学者谷歌学者
  14. CDuce编译器。https://www.cduce.org谷歌学者谷歌学者
  15. Mario Coppo、Mariangiola Dezani-Ciancaglini和Betti Venneri,1981年。可解项的功能特征。《数理逻辑季刊》,27,2-6(1981),45-58。https://doi.org/10.1002/malq.19810270205谷歌学者谷歌学者
  16. 路易斯·达马斯和罗宾·米尔纳。1982.功能程序的主要类型方案。第九届ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL)会议记录。计算机械协会,美国纽约州纽约市207–212。编号:0897910656https://doi.org/10.1145/582153.582176谷歌学者谷歌学者
  17. 玛丽安吉拉·德扎尼。2020年个人通信谷歌学者谷歌学者
  18. 斯蒂芬·多兰(Stephen Dolan)和艾伦·迈克罗夫特(Alan Mycroft)。2017年,MLsub中的多态性、亚型和类型推断。在第44届ACM SIGPLAN编程语言原理研讨会的会议记录中,Giuseppe Castagna和Andrew D.Gordon(编辑)(POPL’17)。计算机械协会,美国纽约州纽约市,60-72。编号:9781450346603https://doi.org/10.1145/3009837.3009882谷歌学者谷歌学者
  19. 埃克玛。2021.ECMAScript®2021语言规范。https://262.ecma-international.org/12.0/谷歌学者谷歌学者
  20. 流量。https://flow.org/谷歌学者谷歌学者
  21. 阿兰·弗里希(Alain Frisch)、朱塞佩·卡斯塔尼亚(Giuseppe Castagna)和维罗妮克·本扎肯(Véronique Benzaken)。2002.语义分类。在LICS’02,第17届IEEE计算机科学逻辑年会上。IEEE计算机学会出版社,137-146。https://doi.org/10.109/LICS.2002.1029823谷歌学者谷歌学者
  22. 阿兰·弗里希(Alain Frisch)、朱塞佩·卡斯塔尼亚(Giuseppe Castagna)和维罗妮克·本扎肯(Véronique Benzaken)。2008.语义子类型:从理论上处理函数、并集、交集和否定类型。ACM杂志,55,4(2008),9月,19:1–19:64。编号:0004-5411https://doi.org/10.1145/1391289.1391293谷歌学者谷歌学者
  23. 尼尔斯·盖斯伯特(Nils Gesbert)、皮埃尔·杰奈维斯(Pierre Genevès)和纳比尔·拉伊达(Nabil Layaída)。2015.确定语义子类型的逻辑方法。《美国计算机学会编程语言与系统汇刊》,38,1(2015),3。https://doi.org/10.1145/2812805谷歌学者谷歌学者
  24. 迈克尔·格林伯格,2019年。渐进式打字的动态实践和静态理论。第三届程序设计语言进步峰会(SNAPL 2019)(莱布尼茨国际信息学论文集,第136卷)。6:1–6:20. 国际编号:978-3-95977-113-9国际编号:1868-8969https://doi.org/10.4230/LIPIcs.SNAPL.2019.6谷歌学者谷歌学者
  25. 弗里茨·亨莱因。1993年。具有多态递归的类型推断。ACM事务处理。程序。语言系统。,15,2(1993年),4月253-289日。发行号:0164-0925https://doi.org/10.1145/169701.169692谷歌学者谷歌学者
  26. J.罗杰·辛德利。1969.组合逻辑中对象的主要类型模式。事务处理。阿默尔。数学。《社会学杂志》,146(1969),29-60。发行编号:00029947https://doi.org/10.2307/1995158谷歌学者谷歌学者
  27. 阿兰·杰弗里。2022.Luau中的语义子类型。Roblox技术博客。https://blog.roblex.com/2022/11/semantic-subtyping-luau2023年5月6日访问谷歌学者谷歌学者
  28. 特雷弗·吉姆。2000年。极地型系统。2000年7月9日至15日,瑞士日内瓦第27届国际自动化、语言和编程学术讨论会卫星研讨会会议记录,ICALP Workshops 2000,JoséD.P.Rolim、Andrei Z.Broder、Andrea Corradini、Roberto Gorrieri、Reiko Heckel、Juraj Hromkovic、Ugo Vaccaro和Joe B.Wells(编辑)。加拿大安大略省滑铁卢Carleton Scientific,323–338。谷歌学者谷歌学者
  29. 阿萨夫·克富里(Assaf J.Kfoury)、杰里·蒂乌林(Jerzy Tiuryn)和帕维·乌尔兹琴(PawełUrzyczyn)。1993年。存在多态递归的类型重建。ACM事务处理。程序。语言系统。,15,2(1993),4月,290–311日。发行号:0164-0925https://doi.org/10.1145/169701.169687谷歌学者谷歌学者
  30. 丹尼尔·利万特(Daniel Leivant)。1983.多态类型推断。在第十届ACM SIGACT-SIGPLAN编程语言原理研讨会(POPL)的会议记录中。计算机械协会,美国纽约州纽约市,88–98。编号:0897910907https://doi.org/10.1145/567067.567077谷歌学者谷歌学者
  31. 路易吉·利科里和西蒙娜·隆奇·德尔拉·罗卡。2007年,教堂交叉类型。信息计算。,205, 9 (2007), 1371–1386. https://doi.org/10.1016/j.ic.2007.03.005谷歌学者谷歌学者
  32. 卢。卢。https://luau-lang.org/谷歌学者谷歌学者
  33. David MacQueen、Gordon Plotkin和Ravi Sethi。递归多态类型的理想模型。信息与控制,71,1(1986),95–130。发行编号:0019-9958https://doi.org/10.1016/S0019-9958(86)80019-5谷歌学者谷歌学者
  34. 根据Martin-Löf。1994年。类型理论中的分析和综合判断。施普林格荷兰,多德雷赫特。87–99.编号:978-94-011-0834-8https://doi.org/10.1007/978-94-011-0834-8_5谷歌学者谷歌学者
  35. TypeScript。https://www.typescriptlang.org/谷歌学者谷歌学者
  36. 罗宾·米尔纳。1978年,编程中的类型多态理论。J.计算。系统科学。,17, 3 (1978), 348–375. 编号:0022-0000https://doi.org/10.1016/0022-0000(78)90014-4谷歌学者谷歌学者
  37. OCaml公司。2023.标准库:地图模块。Github存储库。https://github.com/ocaml/ocaml/blob/trunk/stdlib/map.ml谷歌学者谷歌学者
  38. OCaml的JS。https://ocsigen.org/js_of_ocaml网站/谷歌学者谷歌学者
  39. 布鲁诺·C·d·S·奥利维拉、石志远和若昂·阿尔皮姆。2016年,不相交交叉类型。SIGPLAN否。,51,9(2016年),364-377年9月。发行编号:0362-1340https://doi.org/10.1145/3022670.2951945谷歌学者谷歌学者
  40. 莱昂内尔·帕罗(Lionel Parreaux)和春寅洲(Chun Yin Chau)。MLstruct:结构类型布尔代数中的主类型推断。程序。ACM计划。Lang.,6,OOPSLA2(2022),第141条,10月,30页。https://doi.org/10.1145/3563304谷歌学者谷歌学者
  41. 托马索·彼得鲁奇亚尼。2019.函数语言的多形集合理论类型。博士论文。热那瓦大学和巴黎迪德罗大学联合博士论文。https://tel.archives-ouvertes.fr/tel-02119930谷歌学者谷歌学者
  42. 托马索·彼得鲁奇亚尼、朱塞佩·卡斯塔尼亚、大卫·安科纳和埃琳娜·祖卡。2018.非严格语言的语义分类。在TYPES18:第24届国际证明和程序类型会议上,Peter Dybjer、JoséEspírito Santo和Luís Pinto(编辑)(LIPIcs,第130卷)。4:1–4:24. https://doi.org/10.4230/LIPIcs.TYPES.2018.4谷歌学者谷歌学者
  43. Nick Rioux、Xuejing Huang、Bruno C.d.S.Oliveira和Steve Zdancewic。2023.野兽的领结:超载、Eta扩展和F⋈中的可扩展数据类型。程序。ACM计划。Lang.,7,POPL(2023),第18条,1月,29页。https://doi.org/10.1145/3571211谷歌学者谷歌学者
  44. 约翰·艾伦·罗宾逊。1965.基于解析原理的面向机器的逻辑。J.ACM,12,1(1965),1月23–41日。编号:0004-5411https://doi.org/10.1145/321250.321253谷歌学者谷歌学者
  45. 西蒙娜·隆奇·德尔拉·罗卡。2002.交叉口型lambda-calculus。选举人。注释Theor。计算。科学。,70, 1 (2002), 163–181. https://doi.org/10.1016/S1571-0661(04)80496-1谷歌学者谷歌学者
  46. Amr Sabry和Matthias Felleisen。1992年.关于连续传球式课程的推理。。1992年ACM LISP和函数编程会议记录(LFP'92)。计算机协会,288–298。编号:0897914813https://doi.org/10.1145/1141471.141563谷歌学者谷歌学者
  47. 阿尔伯特·辛普夫(Albert Schimpf)、斯特凡·韦尔(Stefan Wehr)和安妮特·比纽萨(Annette Bieniusa)。2023.设置Erlang的理论类型。第34届函数语言实现与应用研讨会(IFL’22)会议记录。美国纽约州纽约市计算机协会第4条,共14页。编号:9781450398312https://doi.org/10.1145/35872216.3587220谷歌学者谷歌学者
  48. 克里斯托弗·斯特拉奇。1967年。编程语言的基本概念。计算机编程国际暑期学校的课堂讲稿。谷歌学者谷歌学者
  49. Sam Tobin-Hochstadt和Matthias Felleisen。2008年,类型化方案的设计和实施。第35届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(POPL'08)。美国纽约州纽约市ACM,395–406。国际标准编号:978-1-59593-689-9https://doi.org/10.1145/1328438.1328486谷歌学者谷歌学者
  50. Sam Tobin-Hochstadt和Matthias Felleisen。2010.非类型化语言的逻辑类型。在第15届ACM SIGPLAN函数编程国际会议(ICFP’10)的会议记录中。美国纽约州纽约市ACM,117-128。国际标准编号:978-1-60558-794-3https://doi.org/10.1145/1863543.1863561谷歌学者谷歌学者
  51. 2019.我们到底应该称之为句法定向推理规则吗?讨论类型邮件列表。http://lists.seas.upenn.edu/pipermail/types-list/2019/002138.html谷歌学者谷歌学者
  52. 约瑟夫·布莱恩·威尔斯(Joseph Brian Wells)、艾琳·迪莫克(Allyn Dimock)、罗伯特·穆勒(Robert J Muller)和弗兰克林·阿尔宾·图尔巴克(Franklyn Albin Turbak)。2002.多态和多变量流类型演算。J.功能。程序。,12, 3 (2002), 183–227. https://doi.org/10.1017/S095679680104245谷歌学者谷歌学者
  53. Joe B.Wells和Christian Haack。2002.分支类型。在ESOP'02(LNCS,第2305卷)中。施普林格,115-132。isbn:3-543363-5https://doi.org/10.1007/3-540-45927-8_9谷歌学者谷歌学者
  54. 张维欣、孙耀珠和布鲁诺·C·D·S·奥利维拉。2021.组合编程。ACM事务处理。程序。语言系统。,43,3(2021年),第9条,9月,61页。编号:0164-0925https://doi.org/10.1145/3460228谷歌学者谷歌学者

索引术语

  1. 动态语言的多态类型推理

          建议

          评论

          登录选项

          检查您是否可以通过登录凭据或您的机构访问本文。

          登录

          完全访问权限

          PDF格式

          以PDF文件查看或下载。

          PDF格式

          电子阅读器

          使用eReader联机查看。

          电子阅读器