LIPIcs,第263卷

第37届欧洲面向对象编程会议(ECOOP 2023)



缩略图PDF

事件

ECOOP 20232023年7月17日至21日,美国华盛顿州西雅图

编辑

卡里姆·阿里
  • 加拿大阿尔伯塔大学
吉多·萨尔瓦内奇
  • 瑞士圣加仑大学

出版物详细信息

  • 发布时间:2023-07-11
  • 出版商:Schloss Dagstuhl–Leibniz Zentrum für Informatik
  • 国际标准图书编号:978-3-95977-281-5
  • DBLP:db/conf/ecop/ecoop2023

接入号码

文件

找不到与您的筛选器选择匹配的文档。
文件
完整卷
LIPIcs,第263卷,ECOOP 2023,完整卷

作者:卡里姆·阿里和吉多·萨尔瓦内奇


摘要
LIPIcs,第263卷,ECOOP 2023,完整卷

引用为

第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学学报(LIPIcs),第263卷,第1-1288页


将BibTex复制到剪贴板

@会议记录{ali_et_al:LIPIcs.ECOOP.2023,title={{LIPIcs,第263卷,ECOOP 2023,完整卷}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={1--1288},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023},URN={URN:nbn:de:0030-drops-181924},doi={10.4230/LIPIcs.ECOOP.2023},annote={关键词:LIPIcs,第263卷,ECOOP 2023,完整卷}}
文件
前部物质
封面、目录、前言、会议组织

作者:卡里姆·阿里和吉多·萨尔瓦内奇


摘要
封面、目录、前言、会议组织

引用为

第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第0:i-0:xx页,达格斯图尔-莱布尼兹-中央信息学院(2023)


将BibTex复制到剪贴板

@在诉讼程序{ali_et_al:LIPIcs.ECOP.2023.0,作者={Ali,Karim and Salvaneschi,Guido},title={前面的问题,目录,序言,会议组织}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页面={0:i--0:xx},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.0},URN={URN:nbn:de:0030-drops-181932},doi={10.4230/LIPIcs.ECOOP.2023.0},注释={关键词:前言、目录、前言、会议组织}}
文件
设计具有紧急停止故障的异步多方协议

作者:Adam D.Barwell、Ping Hou、Nobuko Yoshida和Fangyi Zhou


摘要
会话类型为消息传递系统提供了一种类型规则。然而,大多数会话类型的方法都假设一个理想的世界:一个一切都可靠且无故障的世界。然而,这与现实世界中的分布式系统形成了鲜明对比。为了解决这一限制,我们引入了Teatrino,这是一种代码生成工具链,它利用具有崩溃停止语义的异步多方会话类型(MPST)来支持故障处理协议。我们使用崩溃处理分支来增强异步MPST和进程。我们的方法不需要对全局类型进行用户级语法扩展,并且具有全局语义的形式化,它捕获了崩溃/崩溃处理过程引起的复杂行为。全局和局部类型语义之间的合理和完整的对应保证了死锁自由、协议一致性以及类型化进程在崩溃时的活性。我们的理论在工具链Teatrino中得到了实现,它通过构造提供了正确性。Teatrino扩展了Scribble多方协议语言,使用Effpi并发编程库生成与协议一致的Scala代码。我们扩展了Scribble和Effpi以支持紧急停止行为。我们通过从会话类型和分布式系统文献中扩展的示例来证明我们的方法的可行性并评估Teatrino。

引用为

Adam D.Barwell、Ping Hou、Nobuko Yoshida和Fangyi Zhou。设计具有崩溃停止故障的异步多方协议。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第1:1-1:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@在议事录{barwell_et_al:LIPIcs.ECOP.2023.1,author={巴威尔、亚当·D·和侯、平和吉田、Nobuko和周、方毅},title={{设计具有崩溃停止故障的异步多方协议}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={1:1--1:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.1},URN={URN:nbn:de:0030-drops-181944},doi={10.4230/LPIcs.ECOP.2023.1},annote={Keywords:会话类型,并发,失败处理,代码生成,Scala}}
文件
基于嵌套纯操作的CRDT

作者:Jim Bauwens和Elisa Gonzalez Boix


摘要
现代分布式应用程序越来越多地复制数据,以确保高可用性和最佳用户体验。无冲突复制数据类型(CRDT)是专为高可用系统设计的一系列数据类型,可确保某种形式的最终一致性。设计CRDT非常困难,因为它需要设计能够保证在存在冲突操作时收敛的设计。尽管出现了设计模式和结构化框架来帮助开发人员解决这个问题,但他们主要关注静态结构化数据;嵌套和动态更改CRDT的结构仍然是一个悬而未决的问题。本文以结构化和系统化的方式探讨了对嵌套CRDT的支持。为此,我们定义了一种基于纯操作的CRDT工作的嵌套CRDT构建方法,从而生成嵌套的纯操作CRDT。我们添加了一些构造来控制CRDT嵌套到纯操作CRDT框架中,并展示了如何在我们的框架中定义几个著名的CRDT设计。我们提供了一个嵌套的纯操作CRDT的实现,作为Flec的扩展,Flec是一个现有的基于TypeScript的框架,用于纯操作CRDR。我们验证了我们的方法,1)通过实现嵌套数据结构组合,2)通过在VeriFx语言中实现并验证我们的方法;3)通过实现一个真实的应用场景并将其网络使用情况与最相关的工作Automerge中的实现进行比较。我们表明,该框架足够通用,可以嵌套众所周知的CRDT设计,如地图和列表,其在网络流量方面的性能与现有技术相当。

引用为

Jim Bauwens和Elisa Gonzalez Boix。嵌套的基于纯操作的CRDT。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第2:1-2:26页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2023)


将BibTex复制到剪贴板

@会议记录{bauwens_et_al:LIPIcs.ECOOP.2023.2,author={Bauwens,Jim和Gonzalez Boix,Elisa},title={{嵌套的基于纯操作的CRDTs}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={2:1--2:26},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.2},URN={URN:nbn:de:0030-drops-181950},doi={10.4230/LIPIcs.ECOOP.2023.2},annote={关键词:CRDT、复制、基于纯操作的CRDT,组合,嵌套}}
文件
多等级轻量级Java

作者:里卡多·比安奇尼、弗朗西斯科·达尼诺、保拉·贾尼尼和埃琳娜·祖卡


摘要
资源软件类型的系统不仅静态地近似程序的预期结果类型,而且还近似外部资源的使用方式,例如,需要变量值的多少倍。我们将FeatherweightJava的类型系统扩展为资源软件,在任意等级代数上对资源的特定使用进行参数化建模。我们证明了这种类型的系统对于资源软件版本的约简来说是可靠的,也就是说,一个类型良好的程序具有一个不会因资源消耗而卡住的约简序列。此外,我们还证明了可用的等级可以是异质的,即通过从一种到另一种的同态的最小集合将不同类型的等级组合在一起而获得。最后,我们展示了如何将等级代数和同态指定为Java类,以便可以用语言本身编写类型中的等级注释。

引用为

里卡多·比安奇尼(Riccardo Bianchini)、弗朗西斯科·达尼诺(Francesco Dagnino)、保拉·贾尼尼(Paola Giannini)和埃琳娜·祖卡(Elena Zucca)。多级羽量级Java。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第3:1-3:27页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@在《议事录》{bianchini_et_al:LIPIcs.ECOP.2023.3,author={Bianchini、Riccardo和Dagnino、Francesco和Giannini、Paola和Zucca、Elena},title={{多级羽量级Java}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={3:1--3:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.3},URN={URN:nbn:de:0030-drops-181960},doi={10.4230/LIPIcs.ECOOP.2023.3},annote={Keywords:分级模式类型,Java}}
文件
Hoogle⋆:使用符号执行的基于Petri网的合成中的常数和λ-抽象

作者:亨利克·博特洛·格拉、乔·费雷拉和乔·科斯塔·塞科


摘要
基于类型定向组件的程序合成是使用可用组件的应用程序自动构建函数的任务,其类型与给定的目标类型匹配。基于经典证明搜索的现有基于组件的合成方法无法处理大型组件集。最近,Haskell的一个基于组件的合成器Hoogle+通过将搜索问题简化为Petri网可达性问题来克服这个问题。然而,Hoogle+不能合成常数或λ-抽象,这限制了它可以解决的问题。我们通过两个独立的步骤介绍了Hoogle⋆,它是Hoogle+的扩展,将常量和λ-抽象引入搜索空间。首先,我们介绍了通配符组件的概念,它是一个匹配所有类型的组件。这使得算法能够生成不完整的函数,即包含通配符组件的函数。其次,我们通过用常量或自定义λ-抽象替换每个出现项来完成这些函数。我们选择通过推理算法寻找常量:我们提出了一种基于符号执行的新统一算法,该算法使用用户提供的输入输出示例来计算通配符出现的替换。与Hoogle+相比,Hoogle⋆可以解决更多类型的问题,尤其是需要生成常量和λ-抽象的问题,而不会降低性能。

引用为

亨利克·博特洛·格拉(Henrique Botelho Guerra)、乔·费雷拉(Joáo F.Ferreira)和乔·科斯塔·塞科(Joóo Costa Seco)。Hoogle⋆:使用符号执行的基于Petri网的合成中的常数和λ-抽象。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第4:1-4:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2023)


将BibTex复制到剪贴板

@会议记录{botelhoguerra_et_al:LIPIcs.ECOOP.2023.4,author={Botelho Guerra、Henrique和Ferreira、Jo\~{a} o个F.和Costa Seco,Jo\~{a} o个},title={{Hoogle⋆:使用符号执行的基于Petri网的合成中的常数和\lambda-abstractions}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={4:1--4:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LPIcs.ECOP.2023.4下载},URN={URN:nbn:de:0030-drops-181974},doi={10.4230/LIPIcs.ECOOP.2023.4},annote={关键词:类型定向,基于组件,程序合成,符号执行,统一,Haskell}}
文件
WebAssembly的模块化抽象定义解释器

作者:凯萨琳娜·布兰德、塞巴斯蒂安·埃尔德维格、斯文·凯德尔和尼尔·汉森


摘要
尽管静态分析可以提高性能并保护程序免受漏洞的攻击,但迄今为止还没有针对WebAssembly(Wasm)的静态全程序分析。部分原因是Wasm有许多复杂的语言问题,不清楚如何为这些特性采用现有的分析框架。本文探讨了如何利用抽象定义解释有效地对Wasm和其他复杂语言进行复杂分析。特别是,我们表明,Wasm的语义可以分解为19个独立于语言的组件,这些组件抽象了Wasm不同的方面。我们针对1628 LOC中的这些组件为完整Wasm 1.0编写了一个高度可配置的定义解释器。分析开发人员可以使用不同的值和效果抽象实例化此解释器,以获得计算过程间控制和数据流信息的抽象定义解释器。这样,我们为Wasm开发了第一个全程序死代码、持续传播和污染分析,每个都在不到210个LOC中。我们对其他人在野外收集的1458个Wasm双星进行了分析。我们的实现基于Scala中用于定义抽象解释的新框架,该框架消除了以前工作中的可伸缩性问题。

引用为

凯萨琳娜·布兰德(Katharina Brandl)、塞巴斯蒂安·埃尔德维格(Sebastian Erdweg)、斯文·凯德尔(Sven Keidel)和尼尔·汉森(Nils Hansen)。WebAssembly的模块化抽象定义解释器。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第5:1-5:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2023)


将BibTex复制到剪贴板

@会议记录{brandl_et_al:LIPIcs.ECOOP.2023.5,author={Brandl、Katharina和Erdweg、Sebastian和Keidel、Sven和Hansen、Nils},title={{WebAssembly}}的模块化抽象定义解释器,booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={5:1--5:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.5},URN={URN:nbn:de:0030-drops-181982},doi={10.4230/LIPIcs.ECOOP.2023.5},annote={关键字:静态分析,WebAssembly}}
文件
动态可更新多方会话协议:从无边界协议生成并发Go代码

作者:David Castro-Perez和Nobuko Yoshida


摘要
多方会话类型(MPST)是一种类型规则,可确保并发和分布式系统中不存在死锁和通信错误。然而,现有的MPST框架不支持具有动态无界参与者的协议,也无法表达许多需要在协议中引入新参与者的通用编程模式。这为MPST在支持创建通过消息传递(如Go或Erlang)进行通信的新参与者(进程、轻量级线程等)的语言中的采用带来了障碍。本文提出了动态可更新多方会话协议,这是一种新的MPST理论(DMst),支持具有无限数量新参与者的协议,其通信拓扑是动态可更新的。我们证明了DMst保证了死锁自由和活性。我们实现了一个工具链GoScr(Go-Scrible),它从DMst生成Go实现,通过构造确保不同的参与者只执行符合给定协议规范的I/O操作。我们通过以下方式评估我们的工具链:(1)从现有基准、教科书和文献中实现具有代表性的并行和并发算法;(2) 表明对于计算昂贵的基准测试,GoScr与朴素的实现相比不会带来显著的开销;(3)在GoScr中构建了三个现实的协议(动态任务委托、递归域名系统和并行Min-Max策略),这三个协议无法用以前的会话类型理论来表示。

引用为

David Castro-Perez和Nobuko Yoshida。动态可更新多方会话协议:从无边界协议生成并发Go代码。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第6:1-6:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2023)


将BibTex复制到剪贴板

@在《议事录》{castroperez_et_al:LIPIcs.ECOP.2023.6,author={Castro-Perez、David和Yoshida、Nobuko},title={{动态可更新多方会话协议:从无边界协议生成并发Go代码}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页码={6:1-6:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.6},URN={URN:nbn:de:0030-drops-181995},doi={10.4230/LIPIcs.ECOOP.2023.6},annote={关键词:多方会话类型,按结构更正,并发,Golang}}
文件
高阶函数编排的模块化编译

作者:路易斯·克鲁斯·菲利佩(Luís Cruz-Filipe)、伊娃·格雷夫森(Eva Graversen)、洛夫罗·卢戈维奇(Lovro Lugović)、法布里奇奥·蒙泰西(Fabrizio Montesi)和马可·佩雷索蒂(Marco Peressotti)


摘要
编排编程是并发和分布式软件的一种范例,通过它,预期通信(编排)的描述被自动编译成具有强大安全性和活性属性(例如死锁-自由)的分布式代码。最近的努力试图将编排编程和高阶函数编程的理论相结合,以将前者的优点与后者的模块化相结合。然而,与文献相比,它们并没有提供令人满意的编译理论,因为存在重要的语法和语义缺陷:编译不是模块化的(编辑部分可能需要重新编译所有内容),生成的代码可能会执行意外的全局同步。在本文中,我们发现这些缺点不仅仅是巧合。相反,它们源于编舞和功能集成带来的真正新挑战:知道编舞涉及哪些参与者变得很重要,应用程序中的分歧需要重新思考如何证明编译的语义正确性。我们提出了一种新的功能编排编译理论,该理论基于编排和分布式代码的类型和语义的仔细设计,克服了这些挑战。其结果是:编译的模块化概念,生成无死锁且正确的代码(它在操作上对应于其源代码编排)。

引用为

路易斯·克鲁斯·菲利佩(Luís Cruz-Filipe)、伊娃·格雷夫森(Eva Graversen)、洛夫罗·卢戈维奇(Lovro Lugović)、法布里奇奥·蒙泰西(Fabrizio Montesi)和马可·佩雷索蒂(Marco Peressotti)。高阶功能编排的模块化编译。第37届欧洲面向对象编程会议(ECOOP 2023)。《莱布尼茨国际信息学论文集》,第263卷,第7:1-7:37页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2023)


将BibTex复制到剪贴板

@会议记录{cruzfilipe_et_al:LIPIcs.ECOOP.2023.7,author={Cruz-Filipe,Lu{'i}s和Graversen,Eva和Lugovi,Lovro和Montesi,Fabrizio和Peressotti,Marco},title={{高阶函数编排的模块化编译}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={7:1--7:37},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.7},URN={URN:nbn:de:0030-drops-182005},doi={10.4230/LIPIcs.ECOOP.2023.7},annote={关键词:编排,并发,\lambda-calculus,类型系统}}
文件
接线电路很简单,比如{0,1,ω},或者它是。。。

作者:简·德梅恩克·霍斯和维姆·范德鲍维德


摘要
定量类型系统支持对编程语言中术语使用的细粒度推理。硬件设计语言是另一种类型的语言,定量打字将是有益的。当将组件连接在一起时,我们必须确保没有未使用的端口、悬空导线或意外的扇入和扇出。虽然使用静态分析工具(如Verilator)可以检测到许多连线使用检查,但定量类型支持将这些外部检查作为类型系统的内在方面。通过对绑定项进行定量键入,我们可以提供设计时检查,以确保所有接线和端口都已使用,并确保所有接线决策都是明确作出的,既不是隐含的,也不是偶然的。我们通过详细介绍如何将定量类型更新到SystemVerilog网络列表,以及这种定量类型系统在创建设计时的影响,展示了定量类型在硬件设计语言中的使用。网表是对合成后产生的硬件的网关级描述,硬件就是从这些网表中生成的(无晶圆厂或预制)。首先,我们为轻量级版本的SystemVerilog网络列表提供了一个简单的结构类型系统,该系统演示了如何使用标准结构技术键入网络列表,以及网络列表是类型安全的,但仍然会导致有线设计的意义。然后,我们详细介绍了如何用定量类型改造语言,使类型系统成为子结构,并详细介绍了我们的新型安全结果如何确保电线和端口一次性使用。通过在Idris2中实现我们的工作,我们的想法在实践和形式上都得到了验证,通过Idris2,我们可以构建一个可对现有设计进行类型检查的验证语言实现。从这项工作中,我们可以寻求将定量打字提升到合成链的更全面的硬件描述语言;以及帮助开发新的、更好的具有定量类型的硬件描述语言。

引用为

Jan de Muijnck-Hughes和Wim Vanderbauwhede。在第37届欧洲面向对象编程会议(ECOOP 2023)上,布线电路像{0,1,ω}或Is It一样简单。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第8:1-8:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@在诉讼中{demijnckhughes_et_al:LIPIcs.CECOOP.2023.8,author={de Muijnck-Hughes,Jan和Vanderbauwhede,Wim},title={{布线很简单,如\{0,1、\omega\}或Is It…}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={8:1--8:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.8},URN={URN:nbn:de:0030-drops-182010},doi={10.4230/LIPIcs.ECOOP.2023.8},annote={关键词:硬件设计,线性类型,依赖类型,DSL,Idris,SystemVerilog,Netlists}}
文件
VeriFx:纠正海量的复制数据类型

作者:凯文·德·波尔(Kevin De Porre)、卡拉·费雷拉(Carla Ferreira)和伊丽莎·冈萨雷斯(Elisa Gonzalez Boix)


摘要
分布式系统采用弱一致性来确保高可用性和低延迟,但由于冲突,很难保证状态收敛。专家们仔细设计了类似于顺序数据类型的复制数据类型(RDT),并嵌入了确保收敛的冲突解决机制。设计RDT具有挑战性,因为它们的正确性取决于并发操作的顺序等微妙之处。目前,研究人员通过纸质校样或使用校样助手手动验证RDT。不幸的是,纸面证明存在推理缺陷,而机械化证明验证的是形式化,而不是实际实现。此外,编写机械化证明是为验证专家准备的,非常耗时。为了简化RDT的设计、实现和验证,我们提出了VeriFx,这是一种具有自动证明功能的RDT专用编程语言。VeriFx允许程序员在函数集合之上实现RDT,并表示自动验证的正确性属性。经过验证的RDT可以传输到主流语言(目前是Scala和JavaScript)。VeriFx提供了用于实现和验证无冲突复制数据类型(CRDT)和操作转换(OT)功能的库。这些库实现了这些方法的一般执行模型,并定义了它们的正确性属性。我们使用这些库实现并验证了51个CRDT的广泛组合,其中16个用于工业数据库,并重现了对OT功能正确性的研究。

引用为

凯文·德·波尔(Kevin De Porre)、卡拉·费雷拉(Carla Ferreira)和伊丽莎·冈萨雷斯-波伊克斯(Elisa Gonzalez Boix)。VeriFx:更正Mass的复制数据类型。第37届欧洲面向对象编程会议(ECOOP 2023)。《莱布尼茨国际信息学论文集》,第263卷,第9:1-9:45页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2023)


将BibTex复制到剪贴板

@会议记录{deprere_et_al:LIPIcs.ECOOP.2023.9,author={De Porre、Kevin和Ferreira、Carla和Gonzalez Boix、Elisa},title={{VeriFx:更正Masses}}的复制数据类型,booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={9:1--9:45},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2023.9},URN={URN:nbn:de:0030-drops-182028},doi={10.4230/LIPIcs.ECOOP.2023.9},annote={关键词:分布式系统,最终一致性,复制数据类型,验证}}
文件
利用测试推断可空注释

作者:Jens Dietrich、David J.Pearce和Mahin Chandramohan


摘要
与空指针的去引用相关的问题是一个普遍存在且被广泛研究的问题,为此已经提出了许多静态分析。它们通常基于数据流分析,并利用指示类型是否为null的注释。这种注释的存在可以显著提高空检查程序的准确性。然而,在野外发现的大多数代码都没有注释,并且工具必须回到默认假设上,从而导致误报和漏报。手动注释代码是一项艰巨的任务,需要深入了解程序如何与客户端和组件交互。我们建议从现有测试用例的分析中推断出可为空的注释。为此,我们执行检测测试并捕获可为null的API交互。然后对这些记录的交互进行细化(分类和传播),以提高其准确性和召回率。我们对来自春季生态系统的七个项目和两个谷歌项目的方法进行了评估,这两个项目已经用数千个@Nullable注释进行了大量手动注释。我们发现我们的方法具有很高的精度,并且可以找到大约一半的现有@Nullable注释。这表明,所提出的方法有助于将劳动密集型注释任务的很大一部分机械化。

引用为

Jens Dietrich、David J.Pearce和Mahin Chandramohan。关于利用测试推断可空注释。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第10:1-10:25页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{dietrich_et_al:LIPIcs.ECOOP.2023.10,author={Dietrich、Jens和Pearce、David J.和Chandramohan、Mahin},title={{关于利用测试推断可空注释}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={10:1--10:25},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.10},URN={URN:nbn:de:0030-drops-182037},doi={10.4230/LIPIcs.ECOOP.2023.10},annote={关键词:空分析,空安全,测试,程序分析}}
文件
通过开放递归的精确类型化实现面向对象的超收费编程

作者:安东·范和莱昂内尔·帕罗


摘要
我们提出了一种新的面向对象编程变体,它围绕三个简单的正交结构构建:用于存储对象状态的类、用于表示对象类型的接口,以及用于重用和覆盖实现的mixin。我们表明,后者可以通过利用一种我们称之为精确类型的开放递归的新特性来获得独特的表达能力。此功能使用“This”和“super”注释来表达任何给定部分方法实现对当前对象和继承定义类型的要求。关键的是,mixin不引入类型或子类型关系,这意味着即使重写和重写的方法具有不可比较的类型,也可以组合它们。再加上MLscript编程语言提供的高级类型推断和结构类型支持,我们证明这可以为表达式问题提供优雅而强大的解决方案。

引用为

安东·范和莱昂内尔·帕罗。通过精确键入开放递归实现超级充电面向对象编程。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第11:1-11:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{fan_et_al:LIPIcs.ECOOP.2023.11,author={Fan,Andong和Parreaux,Lionel},title={{通过开放递归的精确类型实现面向对象的超收费编程}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={11:1--11:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.11},URN={URN:nbn:de:0030-drops-182047},doi={10.4230/LIPIcs.ECOOP.2023.11},annote={关键词:面向对象编程,表达式问题,开放递归}}
文件
LoRe:可验证安全的本地优先软件的编程模型(扩展摘要)

作者:Julian Haas、Ragnar Mogk、Elena Yanakieva、Annette Bieniusa和Mira Mezini


摘要
本地第一个软件在本地管理和处理私有数据,同时仍然支持通过部分不可靠网络连接的多方之间的协作。此类软件通常涉及与用户和执行环境(外部世界)的交互。这种交互的不可预测性及其分散性使得对本地首个软件的正确性进行推理成为一项具有挑战性的工作。然而,开发本地首个软件的现有解决方案并不支持自动安全保证,而是希望开发人员在网络条件不可靠的环境中推理并发交互。我们建议使用LoRe,这是一种编程模型和编译器,可以自动验证开发人员为本地首个应用程序提供的安全属性。LoRe将反应式编程的声明性数据流与静态分析和验证技术相结合,以精确确定违反安全不变量的并发交互,并在需要时通过协调选择性地使用强一致性。我们提出了一个形式化的证明原则,并演示了如何在输出经过验证的可执行代码的原型实现中自动化该过程。我们的评估表明,与最先进的方法相比,LoRe简化了安全本地首个软件的开发,并且验证时间是可以接受的。

引用为

Julian Haas、Ragnar Mogk、Elena Yanakieva、Annette Bieniusa和Mira Mezini。LoRe:可验证安全的本地首个软件的编程模型(扩展抽象)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第12:1-12:15页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2023)


将BibTex复制到剪贴板

@会议记录{haas_et_al:LIPIcs.ECOOP.2023.12,作者={Haas、Julian和Mogk、Ragnar和Yanakieva、Elena和Bieniusa、Annette和Mezini、Mira},title={{LoRe:可验证安全本地第一软件的编程模型(扩展抽象)}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={12:1--12:15},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.12},URN={URN:nbn:de:0030-drops-182056},doi={10.4230/LIPIcs.ECOOP.2023.12},annote={关键词:本地第一软件,反应式编程,不变量,一致性,自动验证}}
文件
有承诺任务并行程序的动态确定性竞争检测

作者:金飞扬(Feiyang Jin)、于乐晨(Lechen Yu)、蒂亚戈·科古姆布雷罗(Tiago Cogumbreiro)、朱雪拉科(Jun Shirako)和维维克·萨卡尔(Vivek Sarkar)


摘要
过去针对任务并行性的动态数据空间和确定空间检测算法的大部分工作都集中在使用fork-join结构的结构化并行上,最近还使用了未来的结构。本文解决了在具有承诺的任务并行程序中动态检测数据空间和确定空间的问题,这些承诺比fork-join结构和future更通用。我们工作的动机是双重的。首先,promises现在已经成为主流的同步结构,它包含在多种语言中,包括C++、JavaScript和Java。其次,过去针对任务并行程序的动态数据空间和确定空间检测的工作不适用于有承诺的程序,因此确定了这项工作的关键需求。本文做出了多项贡献。首先,我们介绍了一种轻量级编程语言,它捕获了带有承诺的任务并行程序的语义,并为使用我们的语义正式定义确定性提供了基础。该定义包括功能确定性(相同输入的相同输出)和结构确定性(相同输出的相同计算图)。主要理论结果表明,数据竞赛的缺失足以保证两个属性的确定性。我们还不知道之前有任何工作为具有承诺的任务并行程序确立了这一结果。接下来,我们介绍一种新的承诺动态竞赛检测器,我们称之为DRDP。DRDP是第一个已知的竞赛检测算法,它顺序执行任务并行程序,而不需要序列投影属性;这是一个关键的要求,因为带有承诺的程序通常不满足串行投影属性。最后,本文给出了从DRDP实现中获得的实验结果。结果表明,在我们的工作中引入了一些重要的优化后,DRDP的空间和时间开销与过去工作中限制性更强的竞赛检测算法相当。据我们所知,DRDP是第一个用于具有promise的任务并行程序的确定性竞赛检测器。

引用为

金飞扬(Feiyang Jin)、于乐晨(Lechen Yu)、蒂亚戈·科古姆布雷罗(Tiago Cogumbreiro)、朱雪拉科(Jun Shirako)和维维克·萨卡尔(Vivek Sarkar)。具有承诺的任务并行程序的动态确定性竞争检测。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第13:1-13:30页,达格斯图尔宫-莱布尼兹-泽特鲁姆-富尔信息学(2023)


将BibTex复制到剪贴板

@会议记录{jin_et_al:LIPIcs.ECOOP.2023.13,author={Jin、Feiyang和Yu、Lechen和Cogumbreiro、Tiago和Shirako、Jun和Sarkar、Vivek},title={{有承诺任务并行程序的动态确定性竞争检测}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={13:1--13:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.13},URN={URN:nbn:de:0030-drops-182060},doi={10.4230/LIPIcs.ECOOP.2023.13},annote={关键词:种族检测、承诺、决定论、决定论-种族、序列投影}}
文件
代数复制数据类型:安全的本地第一软件编程

作者:克里斯蒂安·库斯纳(Christian Kuessner)、拉格纳尔·莫克(Ragnar Mogk)、安娜·卡塔琳娜·威克特(Anna-Katharina Wickert)和米拉·梅齐尼(Mira Mezini)


摘要
本文是关于本地首批应用程序的编程支持,这些应用程序在本地管理私有数据,但仍在多个设备之间同步数据。典型的用例是同步设置和数据,以及多个用户之间的协作。此类应用程序必须保护用户数据的隐私和完整性,而不妨碍或中断用户的正常工作流程,即使设备处于脱机状态或网络连接不牢固。从编程的角度来看,可用性以及隐私和安全问题带来了重大挑战,为此,开发人员必须学习并使用专门的解决方案,例如无冲突复制数据类型(CRDT)或用于集中数据存储的API。这项工作通过支持直接和自动使用代数数据类型(开发人员已经使用这些数据类型来表示应用程序的业务逻辑)来实现同步和协作,从而使开发人员摆脱了这种复杂性。此外,我们使用此方法在多个副本之间提供端到端加密和身份验证(使用共享密钥),这适用于无协调设置。总的来说,我们的方法结合了以下所有优点:(1)允许开发人员设计自定义数据类型,(2)在使用不受信任的中介时提供数据隐私和完整性,(3)无需协调,(4)通过构造确保最终的一致性(即独立于开发人员错误),(5)(6)对于本地第一设置具有足够有效的实现。

引用为

克里斯蒂安·库斯纳(Christian Kuessner)、拉格纳尔·莫克(Ragnar Mogk)、安娜·卡塔琳娜·威克特(Anna-Katharina Wickert)和米拉·梅奇尼(Mira Mezini)。代数复制数据类型:编程安全的本地第一软件。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第14:1-14:33页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{kuessner_et_al:LIPIcs.ECOOP.2023.14,author={Kuessner、Christian和Mogk、Ragnar和Wickert、Anna-Katharina和Mezini、Mira},title={{代数复制数据类型:编程安全本地第一软件}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页码={14:1--14:33},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.14},URN={URN:nbn:de:0030-drops-182076},doi={10.4230/LIPIcs.ECOOP.2023.14},annote={关键词:local-first、数据隐私、协调自由、CRDT、AEAD}}
文件
本地第一个软件的行为类型

作者:罗兰·库恩、埃尔南·梅尔格拉蒂和埃米利奥·托斯托


摘要
对等系统是分布式计算中最具弹性的形式,但很难为其协调设计健壮的协议。这使得很难对此类系统的全球行为进行详细说明和推理。本文提出了从全局角度指定此类系统的群协议。Swarm协议被投射到机器上,这是对等机器的本地规范。我们从具有关键差异的行为类型中获得灵感:同龄人通过事件通知机制而不是通过点对点消息传递进行通信。我们的目标是坚持本地首个软件的原则,网络设备协作完成一项共同任务,同时保持完全自主:每个参与设备都可以随时在本地取得进展,而不会受到其他设备或网络连接不可用的阻碍。这种无需协调的方法会导致计算过程中可能出现的不一致。我们的主要结果表明,在适当的完备性条件下,群协议的一致性最终得到恢复,一致性机器的局部可观察行为最终将与全局规范相匹配。我们的模型详细阐述了Actyx工业平台,并为工具支持提供了基础:我们绘制了一个实现的原型,该原型证明了这项工作是推理本地首个和对等软件系统的可行步骤。

引用为

罗兰·库恩(Roland Kuhn)、埃尔南·梅尔格拉蒂(Hernán Melgratti)和埃米利奥·托斯托(Emilio Tuosto)。Local-First软件的行为类型。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第15:1-15:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{kuhn_et_al:LIPIcs.ECOOP.2023.15,作者={Kuhn,Roland和Melgratti,Hern\'{a} n个埃米利奥·托斯托,title={{Local-First软件的行为类型}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={15:1--15:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.15},URN={URN:nbn:de:0030-drops-182086},doi={10.4230/LIPIcs.ECOOP.2023.15},annote={关键词:分布式协调,本地第一个软件,行为类型,发布订阅,异步通信}}
文件
基于约束的编译器优化在能量采集应用中的应用

作者:李延南和王超


摘要
我们提出了一种优化物联网(IoT)中小型计算设备上运行的软件代码能效的方法,这些设备完全由环境中的环境能源产生的电能供电。由于能源的脆弱性和不稳定性,开发人员很难手动优化软件代码,以处理间歇性电源与计算需求之间的不匹配。我们的方法通过结合使用三种技术克服了这一挑战。首先,我们使用静态程序分析自动识别预计算的机会,即可能提前执行的计算,而不是及时执行的计算。其次,我们优化了预计算策略,即在原软件中分割和重新排序计算任务的步骤,以匹配间歇电源,同时满足各种系统要求;这是通过将能量优化表述为一个约束可满足性问题,然后使用一个离线SMT求解器来解决该问题来实现的。第三,我们使用最先进的编译器平台(LLVM)来自动化程序转换,以确保优化的软件代码通过构造是正确的。我们已经在大量基准程序上评估了我们的方法,这些程序是实现安全通信协议的C程序,这些协议在物联网设备中很受欢迎。实验结果表明,该方法能够有效地优化所有基准程序。此外,优化后的程序在能效和延迟方面明显优于原始程序,总体改进幅度为2.3倍至36.7倍。

引用为

李延南和王超。能量采集应用中基于约束的编译器优化。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第16:1-16:29页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{li_et_al:LIPIcs.ECOOP.2023.16,author={李彦南和王超},title={{能量采集应用程序的基于约束的编译器优化}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={16:1--16:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.16},URN={URN:nbn:de:0030-drops-182096},doi={10.4230/LIPIcs.ECOOP.2023.16},annote={关键词:编译器,能量优化,约束求解,密码学,物联网}}
文件
可限制变量:可扩展变量的简单实用替代方案

作者:马格努斯·马德森(Magnus Madsen)、乔纳森·林德加德·斯塔鲁(Jonathan Lindegaard Starup)和马修·卢茨(Matthew Lutze)


摘要
我们建议将可限制的变体作为可扩展变体的简单实用的替代方案。可限制变量结合了标称类型和结构类型:可限制变量是一种代数数据类型,由捕获其活动标签集的类型级集合公式索引。我们引入了新的模式匹配构造,它允许程序员编写只匹配变体子集的函数,即模式匹配可能是无穷无尽的。然后,我们为可限制变量提供了一个类型系统,以确保此类非穷尽匹配不会在运行时陷入困境。可限制变体的一个基本特征是,类型系统可以捕获结构-表示转换:特别是引入和消除变体。这个属性对于编写可重用函数很重要,但许多基于行的可扩展变体系统都缺乏它。在本文中,我们提出了一个具有可限制变量的演算,两个部分模式匹配构造,以及一个确保进度和保存的类型系统。类型系统用可限制的变量扩展了Hindley-Milner,并用布尔统一的算法W的扩展支持类型推理。我们实现了可限制变体作为Flix编程语言的扩展,并进行了一些案例研究以说明其实际用途。

引用为

马格努斯·马德森(Magnus Madsen)、乔纳森·林德加德·斯塔鲁普(Jonathan Lindegaard Starup)和马修·卢茨(Matthew Lutze)。限制变量:可扩展变量的简单实用替代方案。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第17:1-17:27页,达格斯图尔宫-莱布尼兹-泽特鲁姆-富尔信息学(2023)


将BibTex复制到剪贴板

@会议记录{madsen_et_al:LIPIcs.ECOOP.2023.17,author={Madsen、Magnus和Starup、Jonathan Lindegaard和Lutze、Matthew},title={{可限制变量:可扩展变量的简单实用替代方案}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={17:1--17:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.17},URN={URN:nbn:de:0030-drops-182109},doi={10.4230/LIPIcs.ECOOP.2023.17},annote={关键词:可限制变量、可扩展变量、细化类型、布尔统一}}
文件
纯粹反思的编程:效果、懒惰和并行的和平共存

作者:马格努斯·马德森和杰科·范德波尔


摘要
我们提出了纯度反射,这是一种编程语言特性,使高阶函数能够检查其函数参数的纯度,并基于此信息改变其行为。结果是,对数据结构的操作可以选择性地使用惰性和/或并行计算,同时确保副作用不会丢失或重新排序。该技术建立在最新的基于布尔统一的Hindley-Milner风格类型和效果系统的基础上,该系统支持效果多态性和完整类型推理。我们说明,避免所谓的“中毒问题”对于支持纯度反思至关重要。我们提出了几种新的数据结构,使用纯度反射在急切和懒惰、顺序和并行评估之间切换。我们提出了一个DelayList,它最大程度上是惰性的,但对于不纯正的操作,它会转换为急切的求值。我们还提出了一个DelayMap,它在值上最大程度地惰性,但也利用了急切的并行计算。我们实现纯粹反射作为Flix编程语言的扩展。我们提出了一种新的效果软件形式的单态化,在编译时消除了纯度反射。最后,我们评估了这种新的单态化在编译时间和代码大小方面的成本,并确定它是最小的。

引用为

马格努斯·马德森和杰科·范德波尔。纯粹反思的编程:效果、懒惰和平行的和平共存。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第18:1-18:27页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{madsen_et_al:LIPIcs.ECOOP.2023.18,author={Madsen、Magnus和van de Pol、Jaco},title={{纯反射编程:效果、懒惰和并行的和平共存}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={18:1--18:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.18},URN={URN:nbn:de:0030-drops-182112},doi={10.4230/LIPIcs.ECOOP.2023.18},annote={关键词:类型和效果系统,纯度反射,惰性评估,并行评估}}
文件
精确分离逻辑:弥合验证和错误发现之间的差距

作者:Petar Maksimović、Caroline Cronjäger、Andreas Löw、Julian Sutherland和Philippa Gardner


摘要
过逼近(OX)程序逻辑,如分离逻辑(SL),用于验证堆操作程序的属性:所有终止行为都是特征化的,但不需要达到已确定的结果和错误。因此,OX函数规范与符号执行工具(如Pulse和Pulse-X)支持的真正错误查找不兼容。相比之下,欠近似(UX)程序逻辑(如错误分离逻辑)用于查找真实结果和错误:可以获得已确定的结果和错误,但如果所有终止行为都已被描述出来,则没有机制来理解。我们引入了精确分离逻辑(ESL),它提供了与OX验证和UX真正的错误融资兼容的完全验证的功能规范:所有终止行为都是特征化的,所有已建立的结果和错误都是可达到的。我们用相互递归函数证明ESL的可靠性,首次证明了UX逻辑的函数组合性。我们表明,与常见的OX逻辑定义相比,UX程序逻辑需要内部和外部功能规范的精细定义。我们通过验证各种数据结构算法的抽象ESL规范,研究了ESL的表示性,并首次探索了抽象在UX推理中的作用。在这样做的过程中,我们强调了抽象(隐藏信息)和过度近似(丢失信息)之间的区别。我们的研究结果表明,抽象不能像OX逻辑那样在UX逻辑中自由使用,而且使用ESL为自包含的关键代码提供易于处理的功能规范应该是可行的,然后将其用于验证和真正的错误查找。

引用为

Petar Maksimović、Caroline Cronjäger、Andreas Löw、Julian Sutherland和Philippa Gardner。精确分离逻辑:缩小验证和缺陷发现之间的差距。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第19:1-19:27页,达格斯图尔宫-莱布尼兹-泽特鲁姆-富尔信息学(2023)


将BibTex复制到剪贴板

@会议记录{maksimovic_et_al:LIPIcs.ECOOP.2023.19,author={Maksimovi\'{c}、Petar和Cronj\“{a} 蒙古、卡罗琳和L“{o}”{o} w个,安德烈亚斯和萨瑟兰,朱利安和加德纳,菲利帕},title={{精确分离逻辑:弥合验证和错误发现之间的差距}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={19:1--19:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.19},URN={URN:nbn:de:0030-drops-182123},doi={10.4230/LIPIcs.ECOOP.2023.19},annote={关键词:分离逻辑,程序正确性,程序错误性,抽象}}
文件
Morpheus:数据相关解析器组合程序的自动安全验证

作者:阿什什·米什拉(Ashish Mishra)和苏雷什·贾甘纳森(Suresh Jagannathan)


摘要
解析器组合子是一种用于解析器合成构造的众所周知的机制,在为具有数据依赖性和全局状态的丰富语法编写解析器时特别有用。然而,验证使用它们编写的应用程序在很大程度上是一项挑战,因为组成的解析器具有固有的有效性,并且很难推理与解析操作相关联的任意丰富的数据相关语义操作。在本文中,我们通过定义一个名为Morpheus的解析器组合器框架来解决这些挑战,该框架配备了用于定义为解析和语义操作定制的可组合效果的抽象,以及一种用于定义程序组成解析器的安全属性的丰富规范语言。尽管它的抽象产生了许多与其他解析器组合子系统相同的表现力优势,但Morpheus经过精心设计,可以产生一个更容易处理的自动验证路径。我们演示了它在验证许多现实的、具有挑战性的解析应用程序中的实用性,包括涉及非平凡数据依赖关系的几个案例。

引用为

阿什什·米什拉(Ashish Mishra)和苏雷什·贾甘纳森(Suresh Jagannathan)。语素:数据相关分析器组合程序的自动安全验证。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第20:1-20:27页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{mishra_et_al:LIPIcs.ECOOP.2023.20,作者={Mishra,Ashish and Jagannathan,Suresh},title={{Morpheus:数据相关分析器组合程序的自动安全验证}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={20:1--20:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.20},URN={URN:nbn:de:0030-drops-182138},doi={10.4230/LIPIcs.ECOOP.2023.20},annote={关键词:解析器,验证,领域特定语言,函数编程,精化类型,类型系统}}
文件
不完整教师的自动学习

作者:Mark Moeller、Thomas Wiener、Alaia Solko Breslin、Caleb Koch、Nate Foster和Alexandra Silva


摘要
在过去的十年中,人们对使用主动学习来构建程序和协议模型产生了浓厚的兴趣。但现有算法假设存在一个理想化的预言机,即所谓的最小适当教师(MAT),这在实践中无法完全实现,因此通常与测试近似。这项工作提出了一个基于不完整教师的主动学习新框架。这种新的公式称为iMAT,它巧妙地处理了教师只能参加有限数量的测试或在其他方面存在知识差距的情况。我们将Angluin的学习有限自动机的L^⋆算法应用于不完全教师,并在OCaml中构建了一个原型实现,该实现使用SMT解算器来帮助填写教师未提供的信息。我们演示了iMAT原型在标准基准套件中的各种学习问题上的行为。

引用为

马克·穆勒(Mark Moeller)、托马斯·维纳(Thomas Wiener)、阿莱亚·索尔科·布雷斯林(Alia Solko-Breslin)、卡勒布·科赫(Caleb Koch)、内特·福斯特(Nate Foster)和亚历山德拉·席尔瓦(Alexandra Silva)。自动学习与不完整的老师。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第21:1-21:30页,达格斯图尔宫-莱布尼兹-泽特鲁姆-富尔信息学(2023)


将BibTex复制到剪贴板

@会议记录{moeller_et_al:LIPIcs.ECOOP.2023.21,作者={穆勒、马克和维纳、托马斯和索尔科·布雷斯林、阿拉亚和科赫、卡莱布和福斯特、内特和席尔瓦、亚历山德拉},title={{使用不完整教师的自动学习}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={21:1--21:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.21},URN={URN:nbn:de:0030-drops-182145},doi={10.4230/LIPIcs.ECOOP.2023.21},annote={关键词:有限自动机、主动学习、SMT求解器}}
文件
分离逻辑中基于状态的CRDT的模块化验证

作者:Abel Nieto、Arnaud Daby Seesaram、Léon Gondelman、Amin Timany和Lars Birkedal


摘要
无冲突复制数据类型(CRDT)是一类高可用性和弱一致性的分布式数据结构。CRDT分类法进一步分为两个子类:基于状态和基于操作(基于操作)。最近的前期工作展示了如何使用分离逻辑来验证基于操作的CRDT的收敛性和功能正确性,同时(a)验证实现(与高级协议相反),(b)给出从低级实现细节中抽象出来的高级规范,以及(c)提供模块化规范(即允许客户端代码像使用抽象数据类型一样使用CRDT)。我们将这种分离逻辑方法扩展到CRDT的验证,以处理基于状态的CRDT,同时考虑到需要a(a)-(c)。关键思想是跟踪CRDT的状态,作为产生该状态的操作集的函数。通过观察基于状态的CRDT是自动因果一致的,我们获得了CRDT规范,该规范不确定CRDT是否基于状态或操作。当与之前的工作结合在一起时,我们的技术因此提供了一种统一的方法来规范和验证基于操作和状态的CRDT。我们已经通过验证StateLib来测试我们的方法,StateLib是一个用于构建基于状态的CRDT的库。使用StateLib,我们进一步验证了文献中多个示例CRDT的收敛性和功能正确性。我们的证明是用Aneris分布式分离逻辑编写的,并在Coq中实现了机械化。

引用为

阿贝尔·尼托(Abel Nieto)、阿诺德·达比·西萨拉姆(Arnaud Daby-Seesaram)、莱昂·冈德尔曼(Léon Gondelman)、阿明·蒂曼尼(Amin Timany)和拉尔斯·比克达尔(Lars Birkedal)。分离逻辑中基于状态的CRDT的模块化验证。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第22:1-22:27页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{nieto_et_al:LIPIcs.ECOOP.2023.22,author={Nieto、Abel和Daby-Seesaram、Arnaud和Gondelman,L{e} 上的蒂马尼、阿明和比克达尔、拉尔斯},title={{分离逻辑中基于状态的CRDT的模块化验证}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},pages={22:1-22:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.22},URN={URN:nbn:de:0030-drops-182154},doi={10.4230/LIPIcs.ECOOP.2023.22},annote={关键词:分离逻辑,分布式系统,CRDT,复制数据类型,形式验证}}
文件
用于检测区块链中不确定性的信息流分析

作者:卢卡·奥利维耶里(Luca Olivieri)、卢卡·内格里尼(Luca Negrini)、文森佐·阿塞里(Vincenzo Arceri)、法比奥·塔利亚费罗(Fabio Tagliaferro)、彼得罗·费拉拉(Pietro Ferrara)、阿戈斯蒂诺·科尔特斯(Agostino Cor


摘要
区块链软件(如智能合约和分散应用程序)的一个强制性特征是确定性。事实上,非确定性行为不允许区块链节点达到一个共同的共识状态或确定性响应,这会导致区块链分叉、停止或拒绝服务。虽然特定于域的语言在设计上具有确定性,但广泛用于开发智能合约(如Go)的通用语言提供了许多非确定性来源。然而,并非所有非确定性行为都至关重要。事实上,只有那些影响区块链状态或响应的才可能导致问题,因为其他使用(例如日志记录)只能由执行应用程序的节点观察到,而不能由其他节点观察到。因此,区块链的一些框架,如Hyperledger Fabric或Cosmos SDK,并不禁止使用非确定性构造,而是让程序员承担确保区块链应用程序具有确定性的责任。在本文中,我们提出了一种基于流的方法来检测可能危害区块链的非确定性漏洞。该分析是在GoLiSA中实现的,这是一个用于Go应用程序的基于语义的静态分析器。我们的实验结果表明,GoLiSA能够检测出一组重要应用程序上与非确定性相关的所有漏洞,其结果优于其他用Go编写的区块链软件开源分析程序。

引用为

卢卡·奥利维耶里(Luca Olivieri)、卢卡·内格里尼(Luca Negrini)、文森佐·阿塞里(Vincenzo Arceri)、法比奥·塔利亚费罗(Fabio Tagliaferro)、彼得罗·费拉拉(Pietro Ferrara)、阿戈斯蒂诺·科尔特斯(Agos。用于检测区块链中不确定性的信息流分析。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第23:1-23:25页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{olivieri_et_al:LIPIcs.ECOOP.2023.23,author={奥利维耶里、卢卡和内格里尼、卢卡与阿塞里、文森佐和塔利亚费罗、法比奥和费拉拉、彼得罗和科尔特斯、阿戈斯蒂诺和斯波托、福斯托},title={{用于检测区块链中不确定性的信息流分析}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={23:1--23:25},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.23},URN={URN:nbn:de:0030-drops-182167},doi={10.4230/LIPIcs.ECOOP.2023.23},annote={关键词:静态分析、程序验证、非确定性、区块链、智能合约、DApp、围棋语言}}
文件
符号执行的工具无关摘要

作者:弗雷德里科·拉莫斯(Frederico Ramos)、努诺·萨比诺(Nuno Sabino)、佩德罗·阿德诺(Pedro Adáo)、戴维·诺曼(David A.Naumann)和何塞·弗拉戈索·桑托斯(JoséFragoso Santos)


摘要
我们介绍了一种新的符号反射API,用于实现C程序符号执行的工具无关摘要。我们将建议的API形式化为符号语义,并扩展了两个最先进的符号执行工具,并提供了对其的支持。使用建议的API,我们为总共26个libc函数实现了67个工具依赖的符号摘要。此外,我们还提供了SumBoundVerify,这是一个全自动的摘要验证工具,用于检查使用符号反射API编写的符号摘要的有界正确性。我们使用SumBoundVerify验证从3种最先进的符号执行工具angr、Binsec和Manticore中提取的37个符号摘要,共检测到24个错误摘要。

引用为

弗雷德里科·拉莫斯(Frederico Ramos)、努诺·萨比诺(Nuno Sabino)、佩德罗·阿多(Pedro Adáo)、戴维·诺曼(David A.Naumann)和何塞·弗拉戈索·桑托斯。面向符号执行的工具无关摘要。第37届欧洲面向对象编程会议(ECOOP 2023)。《莱布尼茨国际信息学论文集》,第263卷,第24:1-24:29页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2023)


将BibTex复制到剪贴板

@会议记录{ramos_et_al:LIPIcs.ECOOP.2023.24,author={Ramos、Frederico和Sabino、Nuno和Ad\~{a} o个佩德罗(Pedro)和诺曼(Naumann),大卫·A.(David A.)和弗拉戈索·桑托斯(Fragoso Santos),乔斯(Jos),title={{Toward Tool-Independent Summaries for Symbolic Execution}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={24:1--24:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.24},URN={URN:nbn:de:0030-drops-182171},doi={10.4230/LIPIcs.ECOOP.2023.24},annote={关键词:符号执行、运行时建模、符号摘要}}
文件
顺序和并行程序的直接样式效果表示法

作者:David Richter、Timon Böhler、Pascal Weisenburger和Mira Mezini


摘要
对有效计算的顺序和并行组合建模已经用多种语言研究了很长一段时间。特别是,流行的do-notation为monad的任何实例提供了轻量级效果嵌入。另一方面,成语括号符号为应用词提供了嵌入。首先,虽然monad强制按顺序执行效果,但忽略了并行性的潜力,应用程序不支持顺序效果。用平行效果组合序列仍然是一个悬而未决的问题。这是一个更大的问题,因为实际程序由顺序段和并行段的组合组成。其次,通用符号不支持直接样式中的调用效果,而是在代码上强制使用刚性结构。在本文中,我们提出了一种混合应用/单数表示法,在可能的情况下保持并行性,但在必要的情况下允许顺序性。我们利用了一种直接样式的表示法,其中序列性或并行性是从代码的结构中派生出来的。我们在Coq中提供了有效语言的机械化,并证明我们的编译方法保留了源程序的并行性。

引用为

David Richter、Timon Böhler、Pascal Weisenburger和Mira Mezini。顺序和并行程序的直接样式效果符号。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第25:1-25:22页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{richter_et_al:LIPIcs.ECOOP.2023.25,作者={Richter,David和B\“{o} 赫勒、蒂蒙和韦森伯格、帕斯卡和梅齐尼、米拉}、,title={{顺序和并行程序的直接样式效果符号}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={25:1--25:22},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.25},URN={URN:nbn:de:0030-drops-182181},doi={10.4230/LIPIcs.ECOOP.2023.25},annote={关键词:do-notation,parallelism,concurrency,effects}}
文件
Sinatra:通过多版本执行为商业浏览器提供状态即时更新

作者:乌格纽斯·拉姆塞维西乌斯(Ugnius Rumsevicius)、西德汉斯·文卡特什瓦兰(Siddhanth Venkateshwaran)、埃伦·基丹(Ellen Kidane)和路易斯·皮纳(Luís Pina)


摘要
浏览器是大多数用户体验互联网的主要方式,这使他们成为恶意实体的主要目标。对普通用户来说,最好的防御措施是让他们的浏览器始终保持最新,并在更新可用时立即安装。不幸的是,更新浏览器会造成中断,因为它会导致用户状态丢失。即使现代浏览器在更新后重新打开所有页面(选项卡)以最大限度地减少不便,这种方法仍然会丢失每个页面中的所有本地用户状态(例如,未提交表单的内容,包括相关的JavaScript验证状态),并假设页面可以刷新并产生相同的内容。我们认为这是一个重要的障碍,阻止用户尽可能频繁地更新浏览器。在本文中,我们介绍了Sinatra的设计、实现和评估,该软件支持即时浏览器更新,通过JavaScript程序的新型多版本执行(MVX)方法,结合复杂的代理,不会导致任何数据丢失。Sinatra使用纯JavaScript工作,不需要任何浏览器支持,因此可以在封闭源代码浏览器上工作,并且需要对每个目标页面进行微小的更改,这些更改可以自动进行。首先,Sinatra捕获了JavaScript程序可用的所有非确定性(例如,执行的事件处理程序、过期计时器、Math.random调用)。我们的评估表明,Sinatra需要6MB来存储此类事件,并且随着用户不断与每个页面交互,内存以253KB/s的适度速度增长。当更新可用时,Sinatra通过在新浏览器上重新执行相同的非确定性事件集来传输状态。这段时间可能长达1.5秒,Sinatra使用MVX让用户可以继续与旧浏览器交互。最后,Sinatra在不到10毫秒的时间内改变了角色,用户开始与新浏览器交互,有效地执行了浏览器更新,没有停机时间,也没有状态丢失。

引用为

乌格纽斯·鲁姆塞维西乌斯(Ugnius Rumsevicius)、西德汉斯·文卡特什瓦兰(Siddhanth Venkateshwaran)、埃伦·基丹(Ellen Kidane)和路易斯·皮纳(Luís Pina)。Sinatra:通过多版本执行为商业浏览器提供状态即时更新。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第26:1-26:29页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{rumsevicius_et_al:LIPIcs.ECOOP.2023.26,author={Rumsevicius、Ugnius和Venkateshwaran、Siddhanth和Kidane、Ellen和Pina、Lu、,title={{Sinatra:通过多版本执行对商业浏览器进行有状态即时更新}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={26:1--26:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.26},URN={URN:nbn:de:0030-drops-182190},doi={10.4230/LIPIcs.ECOOP.2023.26},annote={关键词:Internet浏览器,动态软件更新,多版本执行}}
文件
一种高效的批量计算矢量哈希表

作者:赫萨姆·沙罗基和阿米尔·谢赫哈


摘要
近年来,对大数据高性能分析的需求不断增长,这导致了对批量哈希表的研究。结果表明,与普通哈希表相比,这种类型的哈希表可以从缓存局部性和多线程中受益。此外,哈希表的批处理设计适合使用现代处理器的高级功能,如预取和SIMD矢量化。虽然关于批处理哈希表的最新研究和开源项目努力通过更好地使用上述硬件功能来提出改进的设计,但它们的方法仍然没有充分利用现有的性能改进机会。此外,为了更广泛地采用这些高性能数据结构,这种哈希表的高级批处理API存在缺口。在本文中,我们提出了Vec-HT,这是一种用于快速批处理的并行、SIMD矢量化且支持预取的哈希表。为了让开发人员充分利用其性能,我们建议采用高级批处理API设计。我们的实验结果表明,与关系连接处理、集合操作和稀疏向量处理等数据密集型工作负载的替代实现和最新技术相比,该方法具有优越性和竞争力。

引用为

赫萨姆·沙罗基和阿米尔·谢赫哈。用于批量计算的高效矢量哈希表。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第27:1-27:27页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{shahrokhi_et_al:LIPIcs.ECOOP.2023.27,作者={Shahrokhi,Hesam和Shaikhha,Amir},title={{用于批量计算的高效矢量哈希表}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={27:1--27:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.27},URN={URN:nbn:de:0030-drops-182203},doi={10.4230/LIPIcs.ECOOP.2023.27},annote={关键字:哈希表,矢量化,并行化,预取}}
文件
提示词典:有效的函数序集和映射

作者:阿米尔·谢赫哈(Amir Shaikhha)、马赫迪·戈尔巴尼(Mahdi Ghorbani)和赫萨姆·沙罗基(Hesam Shahrokhi)


摘要
本文介绍了在功能上表示有效有序集和映射的隐含字典。与具有对数运算的传统有序字典不同,提示字典可以通过使用被称为提示的类光标对象来获得更好的性能。提示式字典统一了命令式有序字典(例如C++映射)和函数式字典(例如Adams集合)的接口。我们表明,此类字典可以使用排序数组、非平衡树和平衡树作为其底层表示。在整篇文章中,我们使用Scala来展示隐含字典的不同组件。我们还提供了一个C++实现来评估隐含字典的有效性。与标准C++库相比,提示字典为设置操作提供了优越的性能。此外,与SciPy库相比,它们在稀疏向量操作方面表现出了竞争性的性能。

引用为

阿米尔·谢赫哈(Amir Shaikhha)、马赫迪·戈尔巴尼(Mahdi Ghorbani)和赫萨姆·沙罗基(Hesam Shahrokhi)。提示词典:有效的函数有序集和映射。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第28:1-28:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{shaikhha_et_al:LIPIcs.ECOOP.2023.28,作者={Shaikhha、Amir和Ghorbani、Mahdi和Shahrokhi、Hesam},title={{提示词典:高效函数序集和映射}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={28:1--28:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.28},URN={URN:nbn:de:0030-drops-182214},doi={10.4230/LIPIcs.ECOOP.2023.28},annote={关键词:函数集合,有序词典,稀疏线性代数}}
文件
交互树的无干扰语义

作者:卢卡斯·西尔弗(Lucas Silver)、保罗·何(Paul He)、伊桑·切切蒂(Ethan Cecchetti)、安德鲁·赫希(Andrew K.Hirsch)和史蒂夫·兹丹塞维奇(Steve Zdancewic)


摘要
无干扰是程序不会通过公开可见的行为泄漏机密的强大信息安全特性。在存在非终止、状态和异常等影响的情况下,关于不干涉的推理很快变得微妙起来。我们提倡使用交互树(ITrees)为多语言、有效、非终止的程序提供不干扰的组合机械化证明,同时保留语义的可执行性。我们为使用ITrees进行安全分析奠定了重要的基础:两种不可区分的关系,导致了不干涉不同强度对手的两个标准概念,以及用于推理每个概念的元理论库。我们使用一种带有嵌入式汇编的简单命令式语言以及该汇编语言中的编译器来演示结果的实用性。

引用为

卢卡斯·西尔弗(Lucas Silver)、保罗·何(Paul He)、伊桑·切切蒂(Ethan Cecchetti)、安德鲁·赫希(Andrew K.Hirsch)和史蒂夫·兹丹塞维奇(Steve Zdancewic)。交互树的非干扰语义。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第29:1-29:29页,达格斯图尔宫-莱布尼兹-泽特鲁姆宫(2023)


将BibTex复制到剪贴板

@在诉讼中{silver_et_al:LIPIcs.ECOOP.2023.29,author={Silver、Lucas和He、Paul和Cecchetti、Ethan和Hirsch、Andrew K.和Zdancewic、Steve},title={{不干扰交互树的语义}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={29:1--29:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.29},URN={URN:nbn:de:0030-drops-182227},doi={10.4230/LIPIcs.ECOOP.2023.29},annote={关键词:验证,信息流,指称语义,单子}}
文件
交互树规范:用于指定支持自动活动验证的递归有效计算的框架

作者:卢卡斯·西尔弗(Lucas Silver)、埃迪·韦斯特布鲁克(Eddy Westbrook)、马修·亚卡冯(Matthew Yacavone)和瑞恩·斯科特(Ryan Scott)


摘要
本文提出了支持自动验证的一元递归交互式程序的规范框架,该方法将用户提供的指导与自动验证技术相结合。该验证工具设计为具有手动验证方法的灵活性以及自动方法的可用性优势。我们通过增加交互树(Interaction Trees)来实现这一点,交互树是一种用于表示有效计算的Coq数据结构,带有逻辑量词事件。我们表明,这产生了一种规范语言,它易于理解、可自动化,并且功能强大,足以处理涉及非终止的属性。我们的框架在Coq中实现为一个库。我们通过验证真实的低级代码来证明此框架的有效性。

引用为

卢卡斯·西尔弗(Lucas Silver)、埃迪·韦斯特布鲁克(Eddy Westbrook)、马修·亚卡冯(Matthew Yacavone)和瑞恩·斯科特(Ryan Scott)。交互树规范:用于指定支持自动活动验证的递归有效计算的框架。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第30:1-30:26页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{silver_et_al:LIPIcs.ECOOP.2023.30,author={Silver、Lucas和Westbrook、Eddy和Yacavone、Matthew和Scott、Ryan},title={{交互树规范:用于指定支持自动活动验证的递归有效计算的框架}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={30:1--30:26},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.30},URN={URN:nbn:de:0030-drops-182239},doi={10.4230/LIPIcs.ECOOP.2023.30},annote={关键词:共创、规范、验证、单子}}
文件
打破负面循环:探索一级数据日志约束的分层设计空间

作者:Jonathan Lindegaard Starup、Magnus Madsen和Ondřej Lhoták


摘要
λ_Dat演算将函数式和声明式逻辑编程的强大功能结合在一种语言中。在λ_Dat中,数据日志约束是可以构造、作为参数传递、返回、与其他约束组合并求解的一级值。Datalog表达能力的很大一部分来自否定的使用。分层否定是普通程序员可以使用的一种特别简单实用的否定形式。分层要求数据日志程序不得通过否定使用递归。对于Datalog程序,这一要求很容易检查,但对于λ_Dat程序,这就不那么简单了:λ_Dat程序在运行时构造、组合和求解Datalog文件。因此,在编译时无法轻易确定分层。本文探讨了λ_Dat的分层设计空间。我们研究了在编译时确保在运行时构建的程序分层的策略,并且我们认为以前在Flix编程语言中的设计选择是次优的。

引用为

Jonathan Lindegaard Starup、Magnus Madsen和Ondřej Lhoták。打破负面循环:探索一级数据日志约束的分层设计空间。第37届欧洲面向对象编程会议(ECOOP 2023)。《莱布尼茨国际信息学论文集》,第263卷,第31:1-31:28页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2023)


将BibTex复制到剪贴板

@会议记录{starup_et_al:LIPIcs.ECOOP.2023.31,author={Starup、Jonathan Lindegaard和Madsen、Magnus和Lhot{a} k个,打开\v{r} 电子工程师},title={{打破负面循环:探索一级数据日志约束的分层设计空间}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={31:1--31:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.31},URN={URN:nbn:de:0030-drops-182244},doi={10.4230/LPIcs.ECOP.2023.31},annote={关键词:数据日志,一级数据日志约束,否定,分层否定,类型系统,行多态性,Flix编程语言}}
文件
异步多方会话类型的可实现性是决定性的-从消息序列图中吸取的经验教训

作者:费利克斯·斯图兹


摘要
多方会话类型(MST)提供了指定和验证异步消息传递系统的有效方法。对于指定系统中角色之间所有交互的全局类型,可实现性问题会询问是否对所有角色都有本地规范,以使其组成无死锁,并精确生成指定的执行。可实施性问题的可决定性是一个悬而未决的问题。对于具有发送方驱动选择的全局类型,我们的回答是肯定的,它允许发送方在分支时发送到不同的接收方,而接收方从不同的发送方接收。为了实现这一点,我们概括了高级消息序列图(HMSC)领域的结果。这种联系也使我们能够全面研究HMSC技术如何适应MST设置。这包括使问题在算法上更容易处理的技术,以及可能为MST开辟新设计空间的可实现性变体。受潜在性能优势的启发,我们对可实现性问题进行了概括,但不幸的是,这些问题无法确定。

引用为

费利克斯·斯图兹。异步多方会话类型的可实现性是决定性的——从消息序列图中吸取的经验教训。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第32:1-32:31页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{stutz:LIPIcs.ECOOP.2023.32,author={Stutz,Felix},title={{异步多方会话类型可实现性是可决定的-从消息序列图中学到的教训}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={32:1--32:31},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.32},URN={URN:nbn:de:0030-drops-182251},doi={10.4230/LIPIcs.ECOOP.2023.32},annote={Keywords:多方会话类型,验证,消息序列图}}
文件
ConDRust:来自可验证Rust程序的可扩展确定性并发

作者:费利克斯·苏切特(Felix Suchert)、丽莎·泽德尔(Lisza Zeidler)、杰罗尼莫·卡斯特里隆(Jeronimo Castrillon)和塞巴斯蒂安·埃特尔(Sebastian Ertel)


摘要
SAT/SMT-解算器和模型检查器自动化了顺序程序的正式验证。关于可伸缩并发程序的形式化推理仍然是手动的,需要专家知识。但可伸缩性是当前和未来程序的基本要求。顺序命令式程序组成语句、函数/方法调用和控制流构造。并发编程模型为并发组合提供了构造。并发抽象(如线程)和同步原语(如锁)构成了并发程序的各个部分,这些部分旨在并行执行。我们建议使用顺序组合再次组合各个部分,并将此顺序组合编译为并发组合。开发人员可以使用现有工具正式验证顺序程序,而翻译的并发程序提供了迫切需要的可伸缩性。根据这一见解,我们介绍了ConDRust,一种用于Rust程序的新编程模型和编译器。ConDRust编译器基于线程和消息传递通道将顺序组合转换为并发组合。在编译期间,编译器保留了顺序程序的语义以及许多所需的属性,如确定性。我们的评估表明,对于特别难以并行化的不规则算法,我们的ConDRust编译器生成的并发确定性代码的性能甚至比非确定性程序高出三倍。

引用为

费利克斯·苏切特(Felix Suchert)、丽莎·泽德尔(Lisza Zeidler)、杰罗尼莫·卡斯特里隆(Jeronimo Castrillon)和塞巴斯蒂安·埃特尔(Sebastian Ertel)。ConDRust:可验证Rust程序的可扩展确定性并发。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第33:1-33:39页,达格斯图尔宫-莱布尼兹-泽特鲁姆宫(2023)


将BibTex复制到剪贴板

@会议记录{suchert_et_al:LIPIcs.ECOOP.2023.33,author={Suchert、Felix和Zeidler、Lisza和Castrillon、Jeronimo和Ertel、Sebastian},title={{ConDRust:来自可验证Rust程序的可扩展确定性并发}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页码={33:1--33:39},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.33},URN={URN:nbn:de:0030-drops-182263},doi={10.4230/LIPIcs.ECOOP.2023.33},annote={关键词:并发编程、验证、可伸缩性}}
文件
相关合并和一流环境

作者:Tan Jinhao和Bruno C.d.S.Oliveira


摘要
在大多数编程语言中,(运行时)环境存储程序员可用的所有定义。通常,环境是一个元级别的概念,仅在概念上或内部用于编程语言的实现。只有少数编程语言允许环境成为一流的值,这些值可以在程序中直接操作。尽管对静态类型编程语言的一级环境中的calculi进行了一些研究,但这些calculi通常有很大的限制。在本文中,我们提出了一种具有一流环境的静态类型演算,称为𝖤i。𝖤i演算的主要新颖之处在于它对一流环境的支持,以及操作它们的一组富有表现力的操作符。这些操作符包括:当前环境的具体化、环境串联、环境限制以及在给定环境下运行计算的反射机制。在𝖤_i中,任何类型都可以充当上下文(即环境类型),上下文只是类型。此外,由于𝖤_i支持子类型,因此有一个自然的上下文子类型概念。《i》中有两个重要的观点,它们概括了文献中现有的概念,并受到了这些概念的启发。𝖤_i演算借用了λ_i演算中的不相交交集类型和合并运算符,在𝖤_i中用于建模上下文和环境。然而,与λ_i中的合并不同,𝖤_i的合并可以依赖于合并的先前组件。从隐式计算中,𝗠_ i演算借用了查询的概念,允许对环境进行基于类型的查找。特别是,查询是𝖤_i具体化当前环境或其某些部分的能力的关键。我们证明了\120228;_i的决定论和类型稳健性,并表明\120228-i可以编码所有类型良好的λ_i程序。

引用为

Tan Jinhao和Bruno C.d.S.Oliveira。相关合并和一流环境。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第34:1-34:32页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{tan_et_al:LIPIcs.ECOOP.2023.34,作者={Tan,Jinhao和Oliveira,Bruno C.d.S.},title={{依赖合并和一级环境}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页码={34:1--34:32},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.34},URN={URN:nbn:de:0030-drops-182277},doi={10.4230/LIPIcs.ECOOP.2023.34},annote={关键词:一级环境,不相交,交叉类型}}
文件
存储系统的综合辅助崩溃一致性

作者:雅各布·范格芬(Jacob Van Geffen)、西王(Xi Wang)、埃米娜·托拉克(Emina Torlak)和詹姆斯·博恩霍尔特(James Bornholt)


摘要
可靠的存储系统必须具有崩溃一致性—确保在崩溃后恢复到一致状态。崩溃一致性是非常重要的,因为它需要在存在缓存、重新排序和系统故障的情况下维护持久数据结构的复杂不变量。当前的编程模型几乎不支持实现崩溃一致性,迫使存储系统开发人员推出自己的一致性机制。这些机制中的错误可能会导致依赖持久存储的应用程序严重丢失数据。本文提出了一种新的综合辅助编程模型,用于构建冲突一致性存储系统。在这种方法中,存储系统可以假设一个天使般的崩溃一致性模型,其中底层存储堆栈承诺尽可能解决有利于一致性的崩溃。为了实现这个模型,我们为开发人员引入了一个新的标记写入接口,以识别他们对磁盘的写入,并开发了一个程序合成工具DepSynth,它生成依赖关系规则,以在这些标记写入上强制执行崩溃一致性。我们在Amazon Web Services的一个生产存储系统案例研究中评估了我们的模型。我们发现,DepSynth可以自动实现此复杂存储系统的崩溃一致性,其结果与现有专家编写的代码类似,并且可以自动识别和纠正一致性和性能问题。

引用为

雅各布·范格芬(Jacob Van Geffen)、西王(Xi Wang)、埃米娜·托拉克(Emina Torlak)和詹姆斯·博恩霍尔特(James Bornholt)。存储系统的综合辅助崩溃一致性。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第35:1-35:26页,达格斯图尔宫-莱布尼兹-泽特鲁姆-富尔信息学(2023)


将BibTex复制到剪贴板

@会议记录{vangeffen_et_al:LIPIcs.ECOOP.2023.35,author={范格芬、雅各布和王、习和托拉克、艾米娜和博恩霍尔特、詹姆斯},title={{存储系统的综合辅助崩溃一致性}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={35:1--35:26},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.35},URN={URN:nbn:de:0030-drops-182285},doi={10.4230/LIPIcs.ECOOP.2023.35},annote={关键词:程序合成,崩溃一致性,文件系统}}
文件
为代码搜索合成连接查询

作者:王成鹏、姚培森、唐文生、范刚和张查尔斯


摘要
本文提出了一种新的结合查询合成算法Squid,用于搜索具有目标模式的代码。给出正面和负面示例以及自然语言描述,Squid通过基于数据日志的程序分析器分析从示例中导出的关系,并合成表示搜索意图的联合查询。合成的查询可以进一步用于在编辑器中搜索所需的语法结构。为了提高效率,我们通过删除不必要的关系和通过细化枚举查询候选来修剪巨大的搜索空间。我们还引入了两个查询优先级的量化指标,以从多个候选查询中选择查询,从而生成代码搜索所需的查询。我们对Squid进行了30多个代码搜索任务的评估。结果表明,Squid成功地合成了所有任务的连接查询,平均只需2.56秒。

引用为

王承鹏、姚培森、唐文胜、范刚和张瑞敏。为代码搜索合成连接查询。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第36:1-36:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{wang_et_al:LIPIcs.ECOOP.2023.36,作者={王、程鹏和姚、佩森和唐、文胜和范、刚和张、查尔斯},title={{为代码搜索合成连接查询}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={36:1--36:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.36},URN={URN:nbn:de:0030-drops-182294},doi={10.4230/LIPIcs.ECOOP.2023.36},annote={关键词:查询合成、多模式程序合成、代码搜索}}
文件
机器学习模型是否生成类型检查的TypeScript类型?

作者:明浩烨和阿君古哈


摘要
类型迁移是将类型添加到非类型化代码中以在编译时获得保证的过程。TypeScript和其他渐进类型系统通过允许程序员从不精确的类型开始并逐渐增强它们来促进类型迁移。然而,添加类型是一项手动工作,据报告,在大型行业代码库上进行几次迁移花费了数年时间。在研究社区中,人们对使用机器学习来自动化TypeScript类型迁移有着浓厚的兴趣。现有的机器学习模型报告了预测单个TypeScript类型注释的高度准确性。然而,在本文中,我们认为准确性可能会产生误导,我们应该解决另一个问题:自动类型迁移工具能否生成通过TypeScript类型检查器的代码?我们介绍了TypeWeaver,这是一个可以用于任意类型预测模型的TypeScript类型迁移工具。我们使用文献中的三个模型评估TypeWeaver:DeepTyper,一个递归神经网络;图形神经网络LambdaNet;InCoder是一种通用的多语言转换器,支持中间任务。我们的工具自动化了使用类型预测模型所需的几个步骤,包括(1)导入项目依赖项的类型;(2) 将JavaScript模块迁移到TypeScript符号;(3) 在程序中插入预测类型注释,以便在需要时生成TypeScript;以及(4)在需要时拒绝非类型预测。我们在513个JavaScript包的数据集上评估TypeWeaver,其中包括以前从未键入过的包。在最佳类型预测模型下,我们发现只有21%的包类型检查成功,但更令人鼓舞的是,69%的文件类型检查成功。

引用为

明浩烨和阿君古哈。机器学习模型是否生成类型检查的TypeScript类型?。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第37:1-37:28页,达格斯图尔宫-莱布尼兹-泽特鲁姆宫(2023)


将BibTex复制到剪贴板

@会议记录{yee_et_al:LIPIcs.ECOOP.2023.37,author={Yee,Ming-Ho和Guha,Arjun},title={{机器学习模型生成类型检查的类型脚本类型吗?}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页码={37:1-37:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.37},URN={URN:nbn:de:0030-drops-182307},doi={10.4230/LIPIcs.ECOOP.2023.37},annote={关键词:类型迁移,深度学习}}
文件
经验文件
使用程序合成为特定领域语言构建代码转发器(经验论文)

作者:Sahil Bhatia、Sumer Kohli、Sanjit A.Seshia和Alvin Cheung


摘要
特定领域语言(DSL)在许多应用程序域中都很流行。这样的语言使开发人员可以使用高级抽象轻松地表达计算,从而产生高性能的实现。然而,要利用DSL,应用程序开发人员需要掌握DSL的语法并手动重写现有代码。编译器可以在这方面提供帮助,但构建编译器的一部分需要将代码从源代码传输到目标DSL。这种翻译通常是通过源代码上的模式匹配规则完成的。可悲的是,制定这样的规则往往是一个艰苦且容易出错的过程。在本文中,我们描述了使用程序合成来构建代码转换器的经验。为此,我们开发了MetaLift,这是一个新的框架,用于构建转发器,使用程序合成将通用代码转换为DSL。要使用MetaLift,transpiler开发人员首先使用MetaLift的规范语言定义目标DSL的语义,并指定要使用Meta Lift的API进行transpiled的每个输入代码片段的搜索空间。MetaLift然后利用程序合成器和定理证明器自动查找目标DSL中表示的翻译,该目标DSL与输入代码具有可证明的语义等价性。我们已经使用MetaLift构建了三个针对不同编程模型和应用领域的DSL转发器。我们的结果表明,基于MetaLift的编译器可以翻译由专门实现创建的以前工作中使用的许多基准,但与以前的工作相比,可以使用更少的数量级代码行来构建。

引用为

Sahil Bhatia、Sumer Kohli、Sanjit A.Seshia和Alvin Cheung。使用程序合成为特定领域语言构建代码转发器(经验论文)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第38:1-38:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{bhatia_et_al:LIPIcs.ECOOP.2023.38,author={巴蒂亚、萨希勒和科利、苏美尔和塞希亚、桑吉特A.和张,阿尔文},title={{使用程序合成为领域特定语言构建代码转发器}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={38:1--38:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.38},URN={URN:nbn:de:0030-drops-182316},doi={10.4230/LIPIcs.ECOOP.2023.38},annote={关键词:程序合成,代码翻译,DSL,验证}}
文件
经验文件
莫雷洛的锈迹:总是关于记忆安全,即使是在不安全的代码中(经验论文)

作者:莎拉·哈里斯、西蒙·库克西、迈克尔·沃尔默和马克·巴蒂


摘要
内存安全问题是系统编程中的一个严重问题。Rust是一种系统语言,它通过结合类型系统中包含的静态检查和在这种分析变得不切实际时插入的临时动态检查来提供内存安全。ARM的Morello原型体系结构使用功能,即添加了对象边界信息的胖指针,来捕获内存安全故障。本文介绍了一个从Rust到Morello体系结构的编译器,并比较了Rust的运行时安全检查和Morello的硬件支持检查的性能。在Rust cratts存储库中的19个基准套件中,Morello始终保持内存安全保证的成本为39%(包括870个基准套件)。为此,Morello的能力确保即使是不安全的Rust代码也能从内存安全保证中获益。

引用为

莎拉·哈里斯、西蒙·库克西、迈克尔·沃尔默和马克·巴蒂。《莫雷洛的锈:永远是关于记忆安全,即使是在不安全的代码中》(体验论文)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第39:1-39:27页,达格斯图尔-莱布尼兹-泽特鲁姆宫(Schloss Dagstuhl–Leibniz-Zentrum für Informatik)(2023)


将BibTex复制到剪贴板

@会议记录{harris_et_al:LIPIcs.ECOOP.2023.39,author={哈里斯、莎拉和库克西、西蒙和沃尔默、迈克尔和巴蒂、马克},title={{Morello:Always-On Memory Safety,甚至在不安全代码中}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={39:1--39:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.39},URN={URN:nbn:de:0030-drops-182322},doi={10.4230/LIPIcs.ECOOP.2023.39},annote={关键词:编译器,Rust,内存安全,CHERI}}
文件
经验文件
关于使用VeriFast、VerCors、Plural和KeY检查对象使用情况(经验文件)

作者:乔·莫塔、马可·朱蒂和安东尼奥·拉瓦拉


摘要
类型状态是行为类型的概念,描述有状态对象的协议,指定每个状态的可用方法。确保按正确的顺序调用方法(符合协议),并且如果程序终止,所有对象都处于最终状态(协议完成),这对于编写更好、更安全的程序至关重要。这类对象通常在不同的客户端之间共享,或者存储在集合中,这些集合也可以共享。然而,在共享对象时静态检查协议的符合性和完成性是一项挑战。为了评估最先进的验证工具在检查协议共享对象的正确使用方面所提供的支持,我们对Java的四种工具进行了调查:VeriFast、VerCors、Plural和KeY。我们描述了文件读取器、链接列表和迭代器的实现,检查每个工具静态保证协议符合性和完整性的能力,即使对象在集合中共享,并评估程序员在使代码可被这些工具接受方面所做的努力。通过这项研究,我们激发了对轻量级方法的需求,以验证所提出的各种程序。

引用为

乔·莫塔(Joáo Mota)、马可·朱蒂(Marco Giunti)和安东尼奥·拉瓦拉(António Ravara)。关于使用VeriFast、VerCors、Plural和KeY检查对象使用情况(经验文件)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第40:1-40:29页,达格斯图尔宫-莱布尼兹-泽特鲁姆-富尔信息学(2023)


将BibTex复制到剪贴板

@会议记录{mota_et_al:LIPIcs.ECOOP.2023.40,author={莫塔,乔\~{a} o个和Giunti,Marco和Ravara,Ant{o} 尼奥},title={{关于使用VeriFast、VerCors、Plural和KeY检查对象用法}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={40:1--40:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.40},URN={URN:nbn:de:0030-drops-182330},doi={10.4230/LIPIcs.ECOOP.2023.40},annote={关键词:Java,Typestates,VeriFast,VerCors,Plural,KeY}}
文件
珍珠/勇敢的新想法
Dolorem模式:通过编译时函数执行发展语言(Pearl/Brave New Idea)

作者:西蒙·海尼格尔和娜达·阿明


摘要
编程语言通常被设计为静态的单片单元。因此,他们缺乏灵活性。我们展示了一种新的编程语言设计机制,它允许使用更灵活的语言:通过使用编译时函数执行和元编程,我们实现了一种主要在自身中实现的语言。我们的方法可用于创建功能丰富但开销较低的系统编程语言。我们在两个系统上进行了说明,一个系统降低到C,另一个降低到LLVM。

引用为

西蒙·海尼格尔和娜达·阿明。Dolorem模式:通过编译时函数执行发展语言(Pearl/Brave New Idea)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学会议录(LIPIcs),第263卷,第41:1-41:27页,达格斯图尔宫-莱布尼兹-泽特鲁姆宫(2023)


将BibTex复制到剪贴板

@在诉讼中{henniger_et_al:LIPIcs.ECOOP.2023.41,author={Hennier,Simon和Amin,Nada},title={{Dolorem模式:通过编译时函数执行增长语言}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={41:1--41:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.41},URN={URN:nbn:de:0030-drops-182343},doi={10.4230/LIPIcs.ECOOP.2023.41},annote={关键词:可扩展语言,元编程,宏,程序生成,编译}}
文件
珍珠/勇敢的新想法
合成行为类型化:通过隐含的局部类型(珍珠/勇敢的新想法)进行合理、定期的多方会议

作者:Sung-Shik Jongmans和Francisco Ferreira


摘要
为分布式系统编程很困难。多方会话类型(MPST)是一种自动证明协议实现相对于协议规范的安全性和活性的方法。在本文中,我们引入了两种新技术来显著提高MPST方法的表达能力:投影基于隐式局部类型而不是显式;类型检查基于隐式局部类型的操作语义,而不是语法。也就是说,隐式局部类型上的约简关系不仅用于“后验”来证明类型的正确性(一如既往),而且还用于“先验”来综合定义类型规则。现在可以使用MPST方法首次指定/实现/验证的协议类别包括:不同角色参与不同分支的递归协议;接收方选择第一次通信的发送方的协议;多个角色同时选择下一个通信的发送方和接收方的协议,实现为混合输入/输出过程。我们介绍了新技术的理论及其未来的潜力,并展示了它们目前有效支持正则表达式作为全局类型的能力(以前不可能)。

引用为

Sung-Shik Jongmans和Francisco Ferreira。合成行为类型:通过隐含的局部类型(珍珠/勇敢的新想法)进行声音、定期多方会话。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第42:1-42:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{jongmans_et_al:LIPIcs.ECOOP.2023.42,作者={Jongmans,Sung Shik和Ferreira,Francisco},title={{合成行为类型化:声音,通过隐式局部类型的常规多方会话}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={42:1--42:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.42},URN={URN:nbn:de:0030-drops-182358},doi={10.4230/LIPIcs.ECOOP.2023.42},annote={关键词:行为类型,多方会话类型,舞蹈设计}}
文件
珍珠/勇敢的新想法
现代软件文档的兴起(Pearl/Brave New Idea)

作者:马可·拉格利安蒂(Marco Raglianti)、萨巴·纳吉(Csaba Nagy)、罗伯托·米内利(Roberto Minelli)、林斌(Bin Lin)和米歇尔·兰扎(Michele Lanza)


摘要
经典软件文档,正如几十年前构思和计划的那样,不再是唯一的现实。受社会、技术和最佳实践变化的影响,来自权威和官方来源的官方文件正在被实时协作平台和生态系统所取代,这些平台和生态系统出现了激增。这些现代工具影响了开发人员记录软件概念、设计和实现的方式。作为这些转变的副产品,开发人员正在改变他们关于软件的沟通方式。曾经官方文档是项目的唯一真相,现在我们发现了大量不稳定和异构的文档源,形成了一个复杂且不断变化的文档环境。软件项目通常包括一个包含重要信息的顶级README文件,我们可以利用该文件来确定其文档环境。从~12K GitHub存储库开始,我们挖掘其README文件以提取到其他文档源的链接。我们提供了一个定性分析,揭示了文档环境的多个维度(例如,内容类型、源类型),突出了重要的见解。通过分析README文件历史中的即时消息应用程序链接(例如,Gitter、Slack、Discord),我们展示了这一部分在过去十年中是如何发展和演变的。我们的研究结果表明,现代文档包含了越来越流行的通信平台。这并不是一个偶然的现象:相反,它带来了一些未知的社会技术问题,而研究界目前还没有做好处理这些问题的准备。

引用为

马可·拉格利安蒂(Marco Raglianti)、萨巴·纳吉(Csaba Nagy)、罗伯托·米内利(Roberto Minelli)、林斌(Bin Lin)和米歇尔·兰扎(Michele Lanza)。论现代软件文档的兴起(Pearl/Brave New Idea)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第43:1-43:24页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{raglianti_et_al:LIPIcs.ECOOP.2023.43,author={拉格利安蒂(Raglianti)、马可(Marco)和纳吉(Nagy)、萨巴(Csaba)和米内利(Minelli)、罗伯托(Roberto)和林(Lin)、宾(Bin)和兰扎(Lanza)、米歇尔(Michele)},title={{论现代软件文档的兴起}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={43:1--43:24},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.43},URN={URN:nbn:de:0030-drops-182369},doi={10.4230/LIPIcs.ECOOP.2023.43},annote={关键词:软件文档布局,GitHub自述文件,即时消息}}
文件
珍珠/勇敢的新想法
Python类型提示正在图灵完成(Pearl/Brave New Idea)

作者:奥里·罗斯


摘要
Grigore通过描述从图灵机到Java子类型的简化,证明了Java泛型是图灵完备的。此外,他还演示了他的“子类型机器”如果不是因为其极高的编译时间,也可以有元编程应用程序。当前的工作在另一种著名的编程语言Python的上下文中重新审视了Grigore的研究。我们展示了Grigore构造中使用的不可判定Java片段包含在Python的类型系统中,使其图灵完整。与Java相反,Python类型提示由第三方静态分析器和运行时类型检查器检查。新的不可判定性结果意味着这两种类型检查器都不能完全结合Python的类型系统并保证终止。本文包括对各种类型检查器中的无限子类型循环和不同Python发行版中的类型具体化的调查。此外,我们提出了另一种简化方法,即实时模拟图灵机,从而大大加快编译速度。我们的工作伴随着这两种简化的Python实现,它将图灵机器编译成Python子类型机器。

引用为

奥里·罗斯。Python类型提示正在图灵完成(Pearl/Brave New Idea)。第37届欧洲面向对象编程会议(ECOOP 2023)。莱布尼茨国际信息学论文集(LIPIcs),第263卷,第44:1-44:15页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2023)


将BibTex复制到剪贴板

@会议记录{roth:LIPIcs.ECOOP.2023.44,author={Roth,Ori},title={{Python类型提示正在图灵完成}},booktitle={第37届欧洲面向对象编程会议(ECOOP 2023)},页数={44:1--44:15},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-281-5},ISSN={1868-8969},年份={2023},体积={263},editor={Ali,Karim和Salvaneschi,Guido},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.44},URN={URN:nbn:de:0030-drops-182372},doi={10.4230/LIPIcs.ECOOP.2023.44},annote={Keywords:带方差的标称子类型,Python}}

过滤器


问题/备注/反馈
X(X)

Dagstuhl出版社反馈


感谢您的反馈!

已提交反馈

无法发送消息

请稍后再试或发送电子邮件