跳到主要内容
10.1007/978-981-99-8311-7_3指导程序文章/章节视图摘要出版物页面会议记录acm-pubtype公司
第条

可扩展数据类型的类型和语义

出版:2023年11月26日出版历史

摘要

开发和维护软件通常需要(1)向现有应用程序添加新的数据类型构造函数,但也需要(2)添加对现有数据起作用的新函数。大多数编程语言都支持以支持(1)或(2)但不支持两者的方式定义数据类型和函数。由于缺乏本机支持,因此很难使用和扩展库。一个经过理论研究的解决方案是使用初始代数语义虽然可以用现有的编程语言对该解决方案进行编码,但这种编码增加了语法和解释开销,并且通常无法利用编译器可以利用的初始代数的映射和折叠融合定律来生成更高效的代码。解决方案是为初始代数语义提供本地支持。在本文中,我们开发了这样一个解决方案,并为具有初始代数语义本地支持的语言提供了类型规程和核心演算。

工具书类

  1. 1雅培MG阿尔滕柯奇T加纳N容器:构造严格正类型理论。计算。科学。200534212721607092016年10月10日/j.tcs.2005.06.0021077.68015谷歌学者谷歌学者数字图书馆数字图书馆
  2. 2阿贝尔A马修斯R杰弗斯HWiedijk F公司高阶嵌套数据类型的(Co-)迭代证明和程序的类型2003海德堡施普林格12010.1007/3-540-39185-1_11023.68066谷歌学者谷歌学者交叉引用交叉引用
  3. 3阿贝尔A马修斯R乌斯塔鲁T戈登AD高阶嵌套数据类型的广义迭代和叠代软件科学和计算结构基础2003海德堡施普林格546910.1007/3-540-36576-1_41029.68097谷歌学者谷歌学者交叉引用交叉引用
  4. 4Abel,A.,Matthes,R.,Uustalu,T.:高阶和嵌套数据类型的迭代和迭代方案。理论。计算。科学。333(1–2), 3–66 (2005)谷歌学者谷歌学者
  5. 5阿达梅克J范畴语言中的自由代数和自动机实现注释。数学。卡罗尔大学。1974154589602352209293.18006谷歌学者谷歌学者
  6. 6本克·MDybjer P公司Jansson P公司依赖类型理论中泛型程序的宇宙和证明Nord.J.计算。200310426528920523511094.68012谷歌学者谷歌学者数字图书馆数字图书馆
  7. 7范登伯格B施里杰弗斯T鲍尔森CB吴N哦H可重用语言组件的潜在影响编程语言和系统2021查姆施普林格18220110.1007/978-3-030-89051-3_11谷歌学者谷歌学者数字图书馆数字图书馆
  8. 8鸟RMeertens L公司杰林·J嵌套数据类型程序构造数学1998海德堡施普林格52672007年10月10日/BFb0054285谷歌学者谷歌学者交叉引用交叉引用
  9. 9鸟RS帕特森·R嵌套数据类型的通用折叠形式方面计算。19991122002222007年10月17日/001650050047937.68027谷歌学者谷歌学者数字图书馆数字图书馆
  10. 10Cai,Y.,Giarrusso,P.G.,Ostermann,K.:用于数据类型通用编程的具有等递归类型的系统f-omega。收录于:Bodík,R.,Majumdar,R.(编辑)《第43届ACM SIGPLAN-SIGACT编程语言原则年度研讨会论文集》,2016年POPL,美国佛罗里达州圣彼得堡,2016年1月20日至22日,第30-43页。ACM(2016)。DOI(操作界面):https://doi.org/10.1145/2837614.28737660谷歌学者谷歌学者数字图书馆数字图书馆
  11. 11插入符号J基塞利约夫O掸邦C最终无标记,部分评估:用于简单类型语言的无标记分段解释器J.功能。程序。2009195509543253933610.1017/S095679680900720051191.68158谷歌学者谷歌学者数字图书馆数字图书馆
  12. 12Chapman,J.、Dagand,P.、McBride,C.、Morris,P.:轻柔的悬浮艺术。摘自:Hudak,P.,Weirich,S.(编辑)《第15届ACM SIGPLAN功能编程国际会议论文集》,ICFP 2010,美国马里兰州巴尔的摩,2010年9月27日至29日,第3-14页。ACM(2010),DOI(操作界面):https://doi.org/10.1145/1863543.1863547谷歌学者谷歌学者数字图书馆数字图书馆
  13. 13Coquand T系列保林·C马丁·洛夫薄荷糖G归纳定义类型科隆881990海德堡施普林格506610.1007/3-540-52335-9_47谷歌学者谷歌学者交叉引用交叉引用
  14. 14Dagand,P.:数据类型宇宙论:可重用性和依赖类型。英国格拉斯哥斯特拉斯克莱德大学博士论文(2013年)。https://oleg.lib.strath.ac.uk/R/?func=dbin-跳转-满&对象id=22713谷歌学者谷歌学者
  15. 15Devesas Campos M公司征收PB拜尔CDal Lago大学计算充分性的句法观点软件科学和计算结构基础2018查姆施普林格718710.1007/978-3-319-89366-2_41504.68038谷歌学者谷歌学者交叉引用交叉引用
  16. 16Felleisen,M.,Hieb,R.:关于顺序控制和状态的句法理论的修订报告。西奥。计算。科学。103(2), 235–271 (1992).DOI(操作界面):https://doi.org/10.1016/0304-3975(92)90014-7谷歌学者谷歌学者数字图书馆数字图书馆
  17. 17Glimming,J.,Ghani,N.:对象演算的二函数语义。在:Bono,V.,Bugliesi,M.,Drossopoulou,S.(编辑)第二次面向对象开发研讨会论文集,WOOD 2004,英国伦敦,2004年8月30日。ENTCS,第138卷,第79-94页。Elsevier(2004)。DOI(操作界面):https://doi.org/10.1016/j.entcs.2005.09.012谷歌学者谷歌学者数字图书馆数字图书馆
  18. 18Goguen,J.A.:抽象数据类型的规范、正确性和实现的初始代数方法。IBM研究报告6487(1976)谷歌学者谷歌学者
  19. 19Hubers,A.、Morris,J.G.:具有可扩展数据类型的通用编程:或者,使即席可扩展的数据类型不那么即席。程序。ACM计划。语言。7(ICFP)(2023年)。DOI(操作界面):https://doi.org/10.1145/3607843谷歌学者谷歌学者数字图书馆数字图书馆
  20. 20Johann,P.,Ghiorzi,E.:嵌套类型和小工具的参数化。日志。方法计算。科学。17(4) (2021).DOI(操作界面):https://doi.org/10.46298/lmcs-17(4:23)2021谷歌学者谷歌学者交叉引用交叉引用
  21. 21约翰·PGhiorzi E公司杰弗里斯·D基元嵌套类型的参数性软件科学和计算结构基础2021查姆施普林格32434310.1007/978-3-030-71995-1_17谷歌学者谷歌学者数字图书馆数字图书馆
  22. 22Johann,P.,Polonsky,A.:高级数据类型:语法和语义。摘自:第34届ACM/IEEE计算机科学逻辑年会,2019年LICS,加拿大不列颠哥伦比亚省温哥华,2019月24-27日,第1-13页。IEEE(2019),https://doi.org/10.109/LICS.2019.8785657谷歌学者谷歌学者交叉引用交叉引用
  23. 23Kammar,O.,Lindley,S.,Oury,N.:Handlers正在行动。收录于:Morrisett,G.,Uustalu,T.(编辑)ACM SIGPLAN功能编程国际会议,ICFP 2013,美国马萨诸塞州波士顿,2013年9月25-27日,第145-158页。ACM(2013)。DOI(操作界面):https://doi.org/10.1145/2500365.2500590谷歌学者谷歌学者数字图书馆数字图书馆
  24. 24基伯茨RB刘易斯J杰林·J梅杰尔E代数编程高级函数编程1995海德堡施普林格26730710.1007/3-540-59451-5_8谷歌学者谷歌学者交叉引用交叉引用
  25. 25基塞利约夫O吉本斯J打字无标签期末口译员泛型和索引编程2012海德堡施普林格13017410.1007/978-3-642-32202-0_3谷歌学者谷歌学者数字图书馆数字图书馆
  26. 26Mac Lane S系列数学工作者的范畴1978纽约施普林格10.1007/978-1-4757-4721-8232.18001谷歌学者谷歌学者交叉引用交叉引用
  27. 27梅杰尔EFokkinga M公司帕特森·R休斯法官香蕉、镜头、信封和带刺铁丝网的功能编程函数编程语言与计算机体系结构1991海德堡施普林格12414410.1007/3540543961_7谷歌学者谷歌学者交叉引用交叉引用
  28. 28莫吉E计算和单子的概念Inf.计算。19919315592111526210.1016/0890-5401(91)90052-4723.68073谷歌学者谷歌学者数字图书馆数字图书馆
  29. 29Morris,J.G.,McKinna,J.:抽象可扩展数据类型:或使用任何其他名称的行。程序。ACM计划。语言。(POPL),12:1–12:28(2019)。DOI(操作界面):https://doi.org/10.1145/3290325谷歌学者谷歌学者数字图书馆数字图书馆
  30. 30Plotkin G公司Pretnar M公司卡斯塔尼亚G代数效应的处理程序编程语言和系统2009海德堡施普林格809410.1007/978-3-642-00590-9_7谷歌学者谷歌学者数字图书馆数字图书馆
  31. 31Poulsen,C.B.,van der Rest,C.:Hefty代数:高阶代数效应的模块化阐述。程序。ACM计划。语言。7(POPL),1801-1831(2023)。DOI(操作界面):https://doi.org/10.1145/3571255谷歌学者谷歌学者数字图书馆数字图书馆
  32. 32van der Rest,C.,Poulsen,C.B.:面向定义可重用编程语言组件的语言-(项目文件)。收录:Swierstra,W.,Wu,N.(编辑)《函数编程趋势——第23届国际研讨会》,TFP 2022,虚拟事件,2022年3月17日至18日,修订论文集。LNCS,第13401卷,第18-38页。查姆施普林格(2022)。DOI(操作界面):https://doi.org/10.1007/978-3-031-21314-4_2谷歌学者谷歌学者数字图书馆数字图书馆
  33. 33van der Rest,C.,Poulsen,C.B.:可扩展数据类型的类型和语义(扩展版本)(2023)谷歌学者谷歌学者
  34. 34雷诺兹JC高阶程序设计语言的定义解释器高。订单符号。计算。199811436339710.1023/A:1010027404223934.68034谷歌学者谷歌学者数字图书馆数字图书馆
  35. 35Schrijvers,T.,Piróg,M.,Wu,N.,Jaskelioff,M.:单子变压器和模代数效应:是什么将它们结合在一起的。In:Eisenberg,R.A.(编辑)第十二届ACM SIGPLAN Haskell国际研讨会论文集,哈斯克尔@ICFP2019年,德国柏林,2019年8月18-23日,第98-113页。ACM(2019)。DOI(操作界面):https://doi.org/10.1145/3331545.3342595谷歌学者谷歌学者数字图书馆数字图书馆
  36. 36斯威斯特拉W数据类型如点菜J.功能。程序。2008184423436252448810.1017/S09567968080067581153.68015谷歌学者谷歌学者数字图书馆数字图书馆
  37. 37乌斯塔鲁T维尼五世门德尔式归纳类型Nord.J.计算机。199963431732416937.68029谷歌学者谷歌学者数字图书馆数字图书馆
  38. 38Wadler,P.:表达问题。https://homepages.inf.ed.ac.uk/wadler/papers/expression/expression.txt(1998),2020年7月1日访问谷歌学者谷歌学者
  39. 39棒M最终代数语义和数据类型扩展J.计算。系统。科学。1979191274454623110.1016/0022-0000(79)90011-4418.68020谷歌学者谷歌学者交叉引用交叉引用
  40. 40Wu,N.,Schrijvers,T.,Hinze,R.:作用域中的效果处理程序。收录于:Swierstra,W.(编辑)2014年ACM SIGPLAN Haskell研讨会论文集,瑞典哥德堡,2014年9月4-5日,第1-12页。ACM(2014),DOI(操作界面):https://doi.org/10.1145/2633357.2633358谷歌学者谷歌学者数字图书馆数字图书馆
  41. 41杨Z帕维奥蒂M吴恩范登伯格B施里杰弗斯T范围效应的结构化处理程序设计语言与系统2022查姆施普林格46249110.1007/978-3-030-99336-8_17谷歌学者谷歌学者数字图书馆数字图书馆
  42. 42Zhang,W.,Sun,Y.,d.S.Oliveira,B.C.:组合编程。ACM事务处理。程序。语言系统。43(3), 9:1–9:61 (2021).DOI(操作界面):https://doi.org/10.1145/3460228谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 可扩展数据类型的类型和语义
          索引项已通过自动分类分配给内容。

          建议

          评论

          登录选项

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

          登录

          完全访问权限

          • 发布于

            封面图片指南会议记录
            编程语言与系统:第21届亚洲研讨会,APLAS 2023,台湾台北,2023年11月26日至29日,会议记录
            2023年11月
            336页
            国际标准图书编号:978-981-99-8310-0
            DOI(操作界面):10.1007/978-981-99-8311-7

            ©作者,获得Springer Nature Singapore Pte Ltd.2023的独家许可

            出版商

            Springer-Verlag公司

            柏林,海德堡

            出版历史

            • 出版:2023年11月26日

            限定符

            • 第条
          • 文章指标

            • 下载次数(过去12个月)0
            • 下载次数(最近6周)0

            其他指标