LIPIcs,第134卷

第三十三届欧洲面向对象编程会议(ECOOP 2019)



缩略图PDF

事件

2019年7月15日至19日,英国伦敦,ECOOP 2019

编辑器

阿拉斯泰尔·唐纳森
  • 伦敦帝国理工学院计算机系

出版物详细信息

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

接入号码

文件

找不到与您的筛选选择匹配的文档。
文件
完整卷
LIPIcs,第134卷,ECOOP’19,完整卷

作者:阿拉斯泰尔·唐纳森


摘要
LIPIcs,第134卷,ECOOP'19,完整卷

引用为

第33届面向对象编程欧洲会议(ECOOP 2019)。莱布尼茨国际信息学会议录(LIPIcs),第134卷,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{donaldson:LIPIcs.ECOOP.2019,title={{LIPIcs,第134卷,ECOOP'19,完整卷}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019},URN={URN:nbn:de:0030-drops-108979},doi={10.4230/LIPIcs.ECOOP.2019},annote={关键词:软件及其工程}}
文件
前部物质
封面、目录、前言、会议组织

作者:阿拉斯泰尔·唐纳森


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

引用为

第三十三届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第0:i-0:xxv页,达格斯图尔-莱布尼兹-泽特鲁姆信息技术学院(2019)


将BibTex复制到剪贴板

@会议记录{donaldson:LIPIcs.ECOOP.2019.0,author={Donaldson,Alastair F.},title={{正文,目录,前言,会议组织}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页面={0:i--0:xxv},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2019.0},URN={URN:nbn:de:0030-drops-107928},doi={10.4230/LPIcs.ECOP.2019.0},注释={关键词:前言、目录、前言、会议组织}}
文件
生存状态:事件驱动协议和回调控制流

作者:肖恩·迈尔(Shawn Meier)、塞尔吉奥·莫弗(Sergio Mover)和鲍尔·尤·埃文·张(Bor-Yuh Evan Chang)


摘要
众所周知,针对事件驱动的软件框架(如Android)开发交互式应用程序(app)非常困难。要创建行为符合预期的应用程序,开发人员必须遵循复杂且通常是隐式的异步编程协议。此类协议将从框架接收控制的回调的正确注册与相应的应用程序编程接口(API)调用交织在一起,反过来又会影响未来可能的回调集。例如,应用程序在框架状态下调用特定API方法时违反了协议,而这种调用是无效的。使自动推理在这个领域变得困难的主要原因是,使针对此类框架的编程应用程序变得困难:协议的规范不明确,控制流是复杂的、异步的和高阶的。在本文中,我们解决了指定和建模事件驱动的应用程序编程协议的问题。特别是,我们形式化了一个核心元模型,它捕获了事件驱动框架和应用程序回调之间的对话。基于此元模型,我们定义了一种称为lifestate的语言,该语言允许对应用程序编程协议和事件驱动框架施加的回调控制流进行精确而正式的描述。Lifestate统一建模应用程序回调对框架的期望,并指定应用程序在调用框架时必须遵守的规则。通过这种方式,我们有效地结合了生命周期约束和类型状态规则。为了评估生命状态建模的有效性,我们提供了一种动态验证算法,该算法将应用程序的执行跟踪和生命状态协议规范作为输入,以生成见证协议违反的跟踪或证明没有此类跟踪是可实现的。

引用为

肖恩·迈尔(Shawn Meier)、塞尔吉奥·莫弗(Sergio Mover)和鲍尔·尤·埃文·张(Bor-Yuh Evan Chang)。生存状态:事件驱动协议和回调控制流。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第1:1-1:29页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{meier_et_al:LIPIcs.ECOOP.2019.1,author={Meier、Shawn和Mover、Sergio和Chang、Bor-Yuh Evan},title={{Lifestate:事件驱动协议和回调控制流}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={1:1--1:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LPIcs.ECOP.2019.1下载},URN={URN:nbn:de:00030-drops-107932},doi={10.4230/LIPIcs.ECOOP.2019.1},annote={关键词:事件驱动系统、应用程序编程协议、应用程序框架接口、回调、声音框架建模、预测动态验证}}
文件
戈多:隐性和显性期货的所有好处

作者:Kiko Fernandez-Reyes、Dave Clarke、Ludovic Henrio、Einar Broch Johnsen和Tobias Wrigstad


摘要
并发程序通常使用对异步操作结果的未来处理。未来提供了传递尚未计算的结果的方法,并简化了根据此类异步操作的结果进行同步的操作的实现。期货可以被描述为隐式或显式,这取决于用于键入期货的键入规则。当前的未来实现在类型级别或运行时都会遭受“未来扩散”的影响。前者添加了未来的类型包装器,这阻碍了子类型多态性,并使客户端暴露于内部异步通信体系结构。后者通过在运行时遍历嵌套的未来结构来增加延迟。许多语言都受到这两种语言的影响。以往的工作为未来的扩散问题提供了部分解决方案;在本文中,我们展示了如何以优雅而连贯的方式集成这些解决方案,这比单独的任何一个系统都更具表现力。我们基于两种可能的未来结构族(数据流期货和控制流期货),在两个相关的计算中正式描述了我们的提案,并陈述和证明了其关键属性。前者依赖静态类型信息来避免将来不需要的创建,而后者使用带有动态检查的代数数据类型。我们还讨论了如何有效地实施我们的新系统。

引用为

Kiko Fernandez-Reyes、Dave Clarke、Ludovic Henrio、Einar Broch Johnsen和Tobias Wrigstad。戈多:隐性和显性期货的所有好处。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第2:1-2:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{fernandezreyes_et_al:LIPIcs.ECOOP.2019.2,author={Fernandez-Reyes、Kiko和Clarke、Dave和Henrio、Ludovic和Johnsen、Einar Broch和Wrigstad、Tobias},title={{Godot:隐式和显式期货的所有好处}},booktitle={第33届面向对象编程欧洲会议(ECOOP 2019)},页数={2:1--2:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2019.2},URN={URN:nbn:de:00030-drops-107949},doi={10.4230/LIPIcs.ECOOP.2019.2},annote={关键词:未来、并发、类型系统、形式语义}}
文件
多层模块

作者:帕斯卡·维森伯格和吉多·萨尔瓦内奇


摘要
多层编程语言解决了开发分布式系统的复杂性,这些系统抽象了底层实现细节,如数据表示、序列化和网络协议。由于不同对等端的功能可以在同一编译单元中定义,因此多层语言不会强制开发人员沿网络边界模块化软件。不幸的是,将所有层的代码组合到同一个编译单元中会带来可伸缩性挑战,或迫使开发人员求助于传统的模块化抽象,而这些抽象对语言的多层性质是不可知的。在本文中,我们用多层语言的模块系统来解决这个问题。我们的模块系统支持封装每个(跨对等)功能,并在抽象对等类型上定义它。因此,我们将模块化和分布分离开来,并将分布式系统定义为多层模块的组合,每个模块代表一个子系统。我们对分布式算法、分布式数据结构以及Apache Flink任务分发系统的案例研究表明,多层模块允许定义分布式软件中可重用(抽象)交互模式,并能够分离模块化和分发关注点,正确分离分布式系统中的功能。

引用为

帕斯卡·维森伯格和吉多·萨尔瓦内奇。多层模块。第33届欧洲面向对象编程会议(ECOOP 2019)。《莱布尼茨国际信息学论文集》,第134卷,第3:1-3:29页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2019)


将BibTex复制到剪贴板

@在《议事录》{weisenber_et_al:LIPIcs.ECOP.2019.3中,author={Weisenburger,Pascal和Salvaneschi,Guido},title={{多层模块}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={3:1--3:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2019.3},URN={URN:nbn:de:0030-drops-107957},doi={10.4230/LIPIcs.ECOOP.2019.3},annote={关键词:分布式编程,多层编程,抽象对等类型,布局类型,模块系统,Scala}}
文件
范围和框架提高了元解释器的专业化

作者:弗拉德·韦尔古(Vlad Vergu)、安德鲁·托尔马赫(Andrew Tolmach)和埃尔科·维瑟(Eelco Visser)


摘要
DynSem是一种特定于域的语言,用于简明地规范编程语言的动态语义,旨在快速实验和改进语言设计。为了保持较短的定义到执行周期,DynSem规范进行了元解释。元解释引入了运行时开销,使用解释器优化框架(如Truffle/Graal Java工具)很难消除;之前的工作已经表明,将Truffle/Graal应用于元解释器有了很大的改进,但这仍然比使用特定语言的解释器要慢得多。在本文中,我们展示了如何使用封装静态名称绑定和解析信息的范围图来指定元解释器,从而从Truffle/Graal中获得更好的优化结果。此外,我们发现JIT编译受到小多态规则之间大量调用的阻碍,我们引入规则克隆以在运行时派生更大的单态规则作为对策。我们的贡献将DynSem-derived口译员的性能提高到与特定于手写语言的口译员相当的数量级。

引用为

弗拉德·韦尔古(Vlad Vergu)、安德鲁·托尔马赫(Andrew Tolmach)和埃尔科·维瑟(Eelco Visser)。范围和框架提高元解释器的专业化。在第33届面向对象编程欧洲会议(ECOOP 2019)上。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第4:1-4:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{vergu_et_al:LIPIcs.ECOOP.2019.4,author={Vergu、Vlad和Tolmach、Andrew和Visser、Eelco},title={{范围和框架改进元解释者专业化}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={4:1--4:30},series={Leibniz国际信息学论文集(LIPIcs)},ISBN={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2019.4},URN={URN:nbn:de:0030-drops-107969},doi={10.4230/LIPIcs.ECOOP.2019.4},annote={关键词:定义解释程序,部分求值}}
文件
瞬态类型检查(几乎)免费

作者:理查德·罗伯茨、斯特凡·马尔、迈克尔·霍默和詹姆斯·诺布尔


摘要
瞬态渐进式键入强加了运行时类型测试,通常会导致线性减速。这种性能影响不鼓励使用类型注释,因为向程序中添加类型会降低程序的速度。虚拟机可以采用标准的实时优化,将瞬态检查的开销降至接近零。这些优化可以使渐进式语言的性能与最先进的动态语言相当,因此程序员可以在不影响程序性能的情况下向代码中添加类型。

引用为

理查德·罗伯茨、斯特凡·马尔、迈克尔·霍默和詹姆斯·诺布尔。瞬态类型检查(几乎)免费。在第33届面向对象编程欧洲会议(ECOOP 2019)上。《莱布尼茨国际信息学论文集》,第134卷,第5:1-5:28页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2019)


将BibTex复制到剪贴板

@会议记录{roberts_et_al:LIPIcs.ECOOP.2019.5,author={Roberts、Richard和Marr、Stefan和Homer、Michael和Noble、James},title={{临时类型检查(几乎)免费}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={5:1--5:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2019.5},URN={URN:nbn:de:0030-drops-107974},doi={10.4230/LIPIcs.ECOOP.2019.5},annote={关键词:动态类型检查,渐变类型,可选类型,Grace,Moth,面向对象编程}}
文件
硬件接口的打字规则

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


摘要
现代芯片上系统(SoC)由IP(知识产权)核心组成,这些IP核心之间的通信由描述良好的交互协议控制。然而,这些协议的机器可读规范与用已知硬件描述语言验证其实现之间存在脱节。虽然可以编写工具来解决这种关注点分离问题,但工具通常是手写的,用于事后检查硬件设计。我们开发了一个相关的类型系统和概念验证建模语言,以使用用户提供的描述来推理硬件接口的物理结构。我们的类型系统提供了正确的结构保证,如果IP核上的接口符合指定的标准,那么它们将是类型良好的。

引用为

Jan de Muijnck-Hughes和Wim Vanderbauwhede。硬件接口的打字规程。第33届欧洲面向对象编程会议(ECOOP 2019)。《莱布尼茨国际信息学论文集》,第134卷,第6:1-6:27页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2019)


将BibTex复制到剪贴板

@在诉讼中{demaijnckhughes_et_al:LIPIcs.ECOP.2019.6,author={de Muijnck-Hughes,Jan和Vanderbauwhede,Wim},title={{硬件接口的打字规则}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={6:1--6:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/documents/10.4230/LIPIcs.ECOOP.2019.6},URN={URN:nbn:de:0030-drops-107983},doi={10.4230/LIPIcs.ECOOP.2019.6},annote={关键词:芯片上系统、AXI、依赖类型、子结构类型}}
文件
带方差的标称子类型的可满足性

作者:Aleksandr Misonizhnik和Dmitry Mordvinov


摘要
Kennedy和Pierce对Java、C#和Scala等面向对象编程语言中的子类型关系的核心——具有方差的标称类型系统进行了广泛的研究:他们证明了基本类型之间的子类型的不可判定性,并提出了此类类型系统的可判定片段。然而,面向对象代码的模块化验证可能需要对开放类型的关系进行推理。本文形式化并研究了带方差的标称子类型的可满足性问题。我们在一阶逻辑的背景下定义这个问题。我们证明,虽然带方差的非泛地标称子类型是可判定的,但其可满足性问题是不可判定的。我们的证明使用了类型系统的一个非常小的片段。事实上,我们证明了即使对于只有nullary和unary协变和不变类型构造器的非泛类表,正子类型原子的无量词连词的可满足性也是不可判定的。我们详细讨论了这个结果,并展示了一个可判定片段和一个获取其他可判定片段的方案。

引用为

Aleksandr Misonizhnik和Dmitry Mordvinov。关于带方差的名义亚型的可满足性。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第7:1-7:20页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{misonizhnik_et_al:LIPIcs.ECOOP.2019.7,author={Misonizhnik,Aleksandr和Mordvinov,Dmitry},title={{关于带方差的标称子类型的可满足性}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页码={7:1-7:20},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.7},URN={URN:nbn:de:0030-drops-107997},doi={10.4230/LIPIcs.ECOOP.2019.7},annote={关键词:标称类型系统,结构子类型,一阶逻辑,可判定性,软件验证}}
文件
异步JavaScript程序的静态分析

作者:索蒂罗普洛斯和本杰明·利夫希茨


摘要
异步已成为JavaScript的固有元素,旨在提高现代web应用程序的可伸缩性和性能。为此,JavaScript为程序员提供了广泛的结构和功能,用于开发执行异步计算的代码,包括但不限于计时器、承诺和非阻塞I/O。然而,异步强加的数据流是隐式的,开发人员并不总是能够很好地理解这些数据流,因为他们在程序中引入了许多与异步相关的错误。更糟糕的是,很少有工具和技术可用于分析和推理此类异步应用程序。在这项工作中,我们通过设计和实现第一个能够处理几乎所有JavaScript异步原语(直到ECMAScript规范的第7版)的静态分析方案来解决这个问题。具体来说,我们引入了回调图,这是一种用于捕获异步代码之间的数据流的表示。我们利用回调图来设计更精确的分析,以尊重不同异步函数之间的执行顺序。我们使用一种新颖的上下文敏感风格来参数化我们的分析,最终得到了用于构建回调图的多种分析变体。我们在一组手写的和真实的JavaScript程序上进行了一些实验。我们的结果表明,我们的分析可以应用于中等规模的程序,平均达到79%的精确度。研究结果进一步表明,分析敏感性对绝大多数基准都是有益的。具体来说,它能够将精度提高28.5%,而在不牺牲性能的情况下平均达到88%的精度。

引用为

Thodoris Sotiropoulos和Benjamin Livshits。异步JavaScript程序的静态分析。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第8:1-8:29页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{sotiropoulos_et_al:LIPIcs.ECOOP.2019.8,author={Sotiropoulos、Thodoris和Livshits,本杰明},title={{异步JavaScript程序的静态分析}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={8:1--8:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.8},URN={URN:nbn:de:0030-drops-108007},doi={10.4230/LIPIcs.ECOOP.2019.8},annote={关键词:静态分析,异步,JavaScript}}
文件
一阶封装WebAssembly的程序逻辑

作者:Conrad Watt、Petar Maksimović、Neelakantan R.Krishnaswami和Philippa Gardner


摘要
我们介绍了Wasm Logic,这是一个用于一阶封装WebAssembly的合理程序逻辑。我们根据WebAssembly基于堆栈的语义和WebAssemply的类型系统提供的强大保证,设计了一种新颖的断言语法,并展示了如何以原则性的方式调整标准分离逻辑三元组和证明规则,以捕获WebAssemble不常见的结构化控制流。使用Wasm Logic,我们指定并验证了一个简单的WebAssembly B树库,给出了独立于底层实现的抽象规范。我们在Isabelle/HOL中全面实现了Wasm Logic及其稳健性证明。作为稳健性证明的一部分,我们将WebAssembly的一种新颖的大步语义形式化并完全机械化,我们证明,在传递闭包之前,它与原始的WebAssemply小步语义等价。Wasm Logic是WebAssembly的第一个程序逻辑,代表了为WebAssemply创建静态分析工具的第一步。

引用为

Conrad Watt、Petar Maksimović、Neelakantan R.Krishnaswami和Philippa Gardner。一种用于一阶封装WebAssembly的程序逻辑。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第9:1-9:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{watt_et_al:LIPIcs.ECOOP.2019.9,作者={Watt,Conrad和Maksimovi,Petar和Krishnaswami,Neelakantan R.和Gardner,Philippa},title={{一阶封装WebAssembly}}的程序逻辑,booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={9:1--9:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.9},URN={URN:nbn:de:0030-drops-108011},doi={10.4230/LIPIcs.ECOOP.2019.9},annote={关键词:WebAssembly,程序逻辑,分离逻辑,可靠性,机械化}}
文件
通过摘要引用计数进行无垃圾摘要解释

作者:诺亚·范·埃斯(Noah Van Es)、昆汀·斯蒂文纳特(Quentin Stiévenart)和科恩·德鲁弗(Coen De Roover)


摘要
抽象垃圾收集是垃圾收集在抽象解释器中的应用。现有工作表明,抽象垃圾收集可以提高解释器的精度和性能。当前的方法依赖于启发式来决定何时应用抽象垃圾收集。当收集不经常应用时,垃圾会累积并影响精度和性能,而过于频繁的应用程序会带来自身的性能开销。这些权衡之间往往很难达成平衡。我们提出了一种新的方法来处理抽象解释器结果中垃圾的堆积。我们的方法能够消除所有垃圾,从而获得抽象垃圾收集的最大精度和性能优势。同时,我们的方法不需要频繁的堆遍历,因此很少增加解释器的运行时间。我们的方法的核心是使用引用计数来检测和消除垃圾。然而,引用计数不能处理循环,我们表明循环在抽象解释器中比在具体解释器中更常见。为了缓解这个问题,我们的方法检测循环并在强连接组件级别使用引用计数。虽然这种技术一般适用于任何使用引用计数的系统,但我们认为它对于抽象解释器尤其适用。事实上,我们正式表明,对于大多数循环发生的延续存储,循环检测技术只需要每次延续推送O(1)个摊销操作。我们正式介绍了我们的方法,并在Scala-AM框架中提供了一个概念验证实现。我们的经验表明,与现有的抽象垃圾收集方法相比,我们的方法实现了最佳的精度和显著更好的性能。

引用为

诺亚·范·埃斯(Noah Van Es)、昆汀·斯蒂文纳特(Quentin Stiévenart)和科恩·德鲁弗(Coen De Roover)。通过抽象引用计数实现无垃圾抽象解释。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第10:1-10:33页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{vanes_et_al:LIPIcs.ECOOP.2019.10,author={Van Es、Noah和Sti{e} 维纳斯、昆廷和德鲁弗、科恩}、,title={{通过抽象引用计数进行无垃圾抽象解释}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={10:1--10:33},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.10},URN={URN:nbn:de:0030-drops-108022},doi={10.4230/LIPIcs.ECOOP.2019.10},annote={关键词:抽象解释,抽象垃圾收集,引用计数}}
文件
最终声音指向-使用规范进行分析

作者:奥斯伯特·巴斯塔尼、拉胡尔·夏尔马、拉扎罗·克拉普、萨斯瓦特·阿南德和亚历克斯·艾肯


摘要
静态分析做出了越来越脆弱的假设,即所有源代码都可用于分析;例如,大型库经常调用无法分析的本机代码。我们提出了一种指向分析的方法,该方法首先对缺少的代码进行乐观假设,然后插入运行时检查,以报告执行期间发生的这些假设的反例。我们的方法保证了最终的稳健性,它结合了两个保证:(i)运行时检查保证捕获任何执行过程中发生的第一个反例,在这种情况下,可以终止执行以防止损害,以及(ii)只有有限多的反例发生过,这意味着对于所有剩余的执行,静态分析最终会变得静态可靠。我们实现了Optix,这是一个针对Android应用程序的最终可靠分析点,但缺少Android框架。我们展示了Optix添加的运行时检查在实际程序上产生的低开销,并演示了Optix如何改进用于检测Android恶意软件的客户端信息流分析。

引用为

奥斯伯特·巴斯塔尼、拉胡尔·夏尔马、拉扎罗·克拉普、萨斯瓦特·阿南德和亚历克斯·艾肯。最终声音指向与规范分析。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第11:1-11:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{bastani_et_al:LIPIcs.ECOOP.2019.11,author={Bastani、Osbert和Sharma、Rahul和Clapp、Lazaro和Anand、Saswat和Aiken,Alex},title={{最终声音指向-使用规范进行分析}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={11:1--11:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.11},URN={URN:nbn:de:0030-drops-108038},doi={10.4230/LPIcs.ECOP.2019.11},annote={关键词:规范推理、静态分析点、运行时监控}}
文件
如何避免十亿美元的错误:使用SafeP4进行类型安全的数据平面编程

作者:马蒂亚斯·艾奇霍尔茨、埃里克·坎贝尔、内特·福斯特、吉多·萨尔瓦内奇和米拉·梅齐尼


摘要
P4编程语言提供了高级的声明性抽象,为网络领域带来了软件的灵活性。不幸的是,用于在P4中表示包数据的主要抽象,即头类型,缺乏基本的安全保障。在过去几年中,越来越多的程序的使用经验表明了不安全方法的风险,这通常会导致微妙的软件错误。本文提出了SafeP4,这是一种用于可编程数据平面的特定于域的语言,在该语言中,所有包数据都保证具有明确的含义,并满足基本的安全保证。我们为SafeP4配备了一个正式的语义和一个静态类型系统,静态地保证标头的有效性——根据我们对真实P4程序的分析,这是安全漏洞的常见来源。静态确保标头有效性是一项挑战,因为有效标头集可以在运行时修改,使其成为动态程序属性。我们的类型系统通过使用一种形式的路径敏感推理来实现静态安全,该推理跟踪来自条件语句、路由表和控制平面的动态信息。我们的评估表明,SafeP4的类型系统可以有效地消除许多实际程序中的常见故障。

引用为

马蒂亚斯·艾奇霍尔茨、埃里克·坎贝尔、内特·福斯特、吉多·萨尔瓦内奇和米拉·梅齐尼。如何避免犯十亿美元的错误:使用SafeP4进行类型安全的数据平面编程。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第12:12:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{eichholz_et_al:LIPIcs.ECOOP.2019.12,author={Eichholz、Matthias和Campbell、Eric和Foster、Nate和Salvaneschi、Guido和Mezini、Mira},title={{如何避免犯十亿美元的错误:使用SafeP4}}进行类型安全的数据平面编程,booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={12:1--12:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},编辑={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.12},URN={URN:nbn:de:0030-drops-108041},doi={10.4230/LIPIcs.ECOOP.2019.12},annote={关键词:P4,数据平面编程,类型系统}}
文件
Fling-一个Fluent API生成器

作者:尤西·吉尔和奥里·罗斯


摘要
我们提出了流畅API问题的第一个通用实用解决方案——一种算法,该算法给定一种确定性语言(等价于LR(k),k>=0语言),将其编码在只使用多项式数量类型的无界参数多态类型系统中。理论结果伴随着一个实际的工具Fling,这是一个在YACC会场上的流畅API编译器,专门为在Java中嵌入DSL而定制。

引用为

尤西·吉尔和奥里·罗斯。Fling-一个Fluent API生成器。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第13:1-13:25页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{gil_et_al:LIPIcs.ECOOP.2019.13,author={Gil,Yossi and Roth,Ori},作者,title={{Fling-Fluent API生成器}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={13:1--13:25},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.13},URN={URN:nbn:de:0030-drops-108053},doi={10.4230/LPIcs.ECOP.2019.13},annote={关键词:fluent API,类型系统,编译,代码生成}}
文件
NumLin:线性代数的线性类型

作者:Dhruv C.Makwana和Neelakantan R.Krishnaswami


摘要
我们介绍了NumLin,这是一种函数式编程语言,其类型系统旨在强制安全使用低级线性代数库(如BLAS/LAPACK)的API。我们通过对其关键功能的简要描述和几个示例来实现这一点。我们表明NumLin的类型系统是健全的,它的实现改进了线性代数程序的幼稚实现,几乎达到了C级性能。通过这样做,我们证明了:(a)线性类型非常适合准确、简洁地表达低级线性代数库的API;(b)尽管以前的工作很复杂,但分数权限实际上可以使用简单、众所周知的技术实现,并在实际程序中实际使用。

引用为

Dhruv C.Makwana和Neelakantan R.Krishnaswami。NumLin:线性代数的线性类型。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第14:1-14:25页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{makwana_et_al:LIPIcs.ECOOP.2019.14,作者={Makwana,Dhruv C.和Krishnaswami,Neelakantan R.},title={{NumLin:线性代数的线性类型}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={14:1--14:25},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.14},URN={URN:nbn:de:0030-drops-108069},doi={10.4230/LIPIcs.ECOOP.2019.14},annote={关键词:数值、线性、代数、类型、权限、OCaml}}
文件
invokedynamic的深层静态建模

作者:乔治·福图尼斯和亚尼斯·斯马拉格达基斯


摘要
Java 7以invokedynamic框架的形式引入了可编程动态链接。对包含可编程动态连接的代码的静态分析经常被认为是Java程序分析中不可靠的一个重要原因。例如,Java8中引入的Javalambdas是一个非常流行的特性,但它对静态分析具有抵抗力,因为它将invokedynamic与动态代码生成混合在一起。这些技术使静态分析假设无效:可编程链接中断了对方法解析的推理,而根据定义,动态生成的代码在静态下是不可用的。在本文中,我们表明静态分析可以对invokedynamic的使用进行预测建模,同时还可以与额外的规则协作来处理lambdas的运行时代码生成。我们的方法插入到现有的静态分析中,有助于消除处理lambdas(包括相关功能,如方法引用)和通用invokedynamic使用中的所有不健全之处。我们在自己的基准测试套件和第三方基准测试套件上评估我们的技术,高效地发现以前由于不可靠而无法访问的所有代码。

引用为

乔治·福图尼斯(George Fourtounis)和亚尼斯·斯马拉格达基斯(Yannis Smaragdakis)。invokedynamic的深层静态建模。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第15:1-15:28页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{fourtounis_et_al:LIPIcs.ECOOP.2019.15,author={Fourtounis,George和Smaragdakis,Yannis},title={{invokedynamic}}的深度静态建模,booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={15:1--15:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.15},URN={URN:nbn:de:0030-drops-108076},doi={10.4230/LPIcs.ECOP.2019.15},annote={关键词:静态分析,invokedynamic}}
文件
在不建模外语的情况下推理外部函数接口

作者:亚历克西·特科特、埃伦·阿特卡和格雷戈·理查兹


摘要
外部函数接口(FFI)允许用一种语言(称为宿主语言)编写的程序调用用另一种语言编写的函数(称为来宾语言),并且在现代编程语言中广泛存在,其中C FFI是最流行的。不幸的是,关于外国金融机构的推理可能非常具有挑战性,尤其是在使用传统方法时,为了保证整个语言的任何方面,需要使用完整的客座语言模型。为了解决这个问题,我们提出了一个框架,用于定义外国金融机构的整体语言语义,而无需对来宾语言建模,这使得对外国金融机构进行推理成为可能。我们表明,有了这样的语义,就可以保证整个语言的某种形式的健全性,并将类型良好的宿主语言程序中的错误归因于来宾语言。我们还介绍了该方案的一个实现,即Poseidon Lua,它显示了与传统Lua C FFI相比的加速。

引用为

亚历克西·图尔科特(Alexi Turcotte)、埃伦·阿特卡(Ellen Arteca)和格雷戈·理查兹(Gregor Richards)。在不建模外语的情况下推理外部函数接口。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第16:1-16:32页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{turcotte_et_al:LIPIcs.ECOOP.2019.16,author={特科特、亚历克西和阿特卡、艾伦和理查兹、格雷戈},title={{在不建模外语的情况下推理外部函数接口}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},pages={16:1-16:32},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.16},URN={URN:nbn:de:0030-drops-108087},doi={10.4230/LPIcs.ECOP.2019.16},annote={关键词:形式语义,语言互操作,Lua,C,外部函数接口}}
文件
DynaSOAr:一种用于GPU上高效内存访问的面向对象编程的并行内存分配器

作者:马蒂亚斯·斯普林格和Hidehiko Masuhara


摘要
尽管许多重要的HPC应用程序具有固有的对象结构,但面向对象编程长期以来被认为对于SIMD高性能计算来说效率太低。在SIMD加速器(包括GPU)上,这主要是由于内存分配和内存访问的性能问题造成的:有几个库直接支持加速器设备上的并行内存分配,但所有这些库都存在未分配内存的问题。我们发现了一大类面向对象程序,其中包含许多重要的实际应用程序,可以在大规模并行SIMD加速器上高效实现。我们称这个类为Single-Method Multiple-Objects(SMMO),因为并行性是通过在一个类型的所有对象上运行一个方法来表示的。为了让在GPU编程方面经验不足的领域专家能够使用快速的GPU编程,我们开发了DynaSOAr,这是一个用于SMMO应用程序的CUDA框架。DynaSOAr包括(1)一个完全并行、无锁的动态内存分配器,(2)一个数据布局DSL和(3)一个高效的并行do-all操作。通过控制内存分配和内存访问,DynaSOAr的性能优于最先进的GPU内存分配器。DynaSOAr通过阵列结构(SOA)数据布局改进了已分配内存的使用,并通过使用无锁分层位图高效管理空闲和已分配内存块来实现低内存碎片。与其他分配器相反,我们的设计在很大程度上基于原子操作,以原始(取消)分配性能换取更好的整体应用程序性能。在我们的基准测试中,DynaSOAr的应用程序代码速度比最先进的分配器提高了3倍。此外,与其他分配器相比,DynaSOAr管理堆内存的效率更高,允许程序员用相同的内存量运行最大两倍的问题大小。

引用为

马蒂亚斯·斯普林格和Hidehiko Masuhara。DynaSOAr:一种并行内存分配器,用于在具有高效内存访问的GPU上进行面向对象编程。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第17:1-17:37页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{springer_et_al:LIPIcs.ECOOP.2019.17,author={Springer、Matthias和Masuhara、Hidehiko},title={{DynaSOAr:在具有高效内存访问的GPU上面向对象编程的并行内存分配器}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页码={17:1--17:37},series={Leibniz国际信息学论文集(LIPIcs)},ISBN={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.17},URN={URN:nbn:de:0030-drops-108098},doi={10.4230/LIPIcs.ECOOP.2019.17},annote={关键词:CUDA,数据布局,动态内存分配,GPU,面向对象编程,SIMD,单指令多对象,数组结构}}
文件
可靠状态机:编程可靠云服务的框架

作者:苏瓦姆·穆克吉(Suvam Mukherjee)、尼丁·约翰·拉吉(Nitin John Raj)、克里希南·戈文德拉吉(Krishnan Govindraj)、帕塔齐斯·德利吉安尼(Pantazis Deligiannis)、钱德拉蒙德兰(Chandramouleswaran Ravichandran)、阿卡什·拉尔(Akash Lal)、阿


摘要
为云构建可靠的应用程序是一项挑战,因为程序执行期间会出现不可预测的故障。本文提出了一个称为可靠状态机(RSM)的编程框架,该框架通过构造提供容错。在我们的框架中,应用程序由多个(可能是分布式的)RSM组成,它们通过消息相互通信,很大程度上是基于角色的编程风格。每个RSM在设计上都是容错的,因此提供了“始终活着”的假象。正如人们在无故障环境中所期望的那样,RSM保证只处理每个输入请求一次。RSM运行时会自动处理持久状态,并在故障转移时对其进行补水。我们介绍了RSM的核心语法和语义,以及失败透明度的正式证明。我们提供了一个。用于将服务部署到Microsoft Azure的RSM框架的NET实现。我们对微基准进行了广泛的性能评估,以表明可以使用RSM构建高吞吐量应用程序。我们还提供了一个案例研究,其中我们使用RSM重写了生产云服务的重要部分。生成的服务具有更简单的代码,并展示了生产粒度性能。

引用为

苏瓦姆·穆克吉(Suvam Mukherjee)、尼丁·约翰·拉吉(Nitin John Raj)、克里希南·戈文德拉吉(Krishnan Govindraj)、帕塔齐斯·德利吉安尼斯(Pantazis Deligiannis)、钱德拉蒙·拉维坎德兰(Chandramouleswaran Ravichandran)、阿卡什·拉尔(Akash Lal)。可靠状态机:编程可靠云服务的框架。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第18:1-18:29页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@诉讼程序{mukherjee_et_al:LIPIcs.ECOOP.2019.18,作者={穆克吉、苏瓦姆和拉吉、尼廷·约翰和戈文德拉吉、克里希南和德利吉安尼斯、潘塔齐斯和拉维昌兰、钱德拉穆莱斯瓦兰和拉尔、阿卡什和拉斯托吉、阿塞姆和克里希纳斯瓦米、拉贾},title={{可靠状态机:编程可靠云服务的框架}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={18:1--18:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},编辑={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.18},URN={URN:nbn:de:0030-drops-108101},doi={10.4230/LIPIcs.ECOOP.2019.18},annote={关键词:容错、云计算、Actor框架}}
文件
通过同步转移债务

作者:贾法尔·哈敏和巴特·雅各布斯


摘要
验证多线程程序安全属性的一种常见方法是分配适当的权限,例如堆位置的所有权,以及义务,例如在通道上发送消息的义务,并确保每个线程只执行其有权限执行的操作,并且在终止之前还履行其所有义务。虽然可以通过同步将权限从发送方线程(例如,在发送方线程中发送消息或通知条件变量)传递给接收方线程(在接收方线程中接收消息或通知),但在现有方法中,只有当线程分叉时,才能传递义务。在本文中,我们引入了两种机制,一种用于通道,另一种用于条件变量,它们允许将义务和权限从发送方转移到接收方,同时确保不存在转移的义务丢失的状态,即,它们从发送方线程中释放,但尚未加载到接收方线程中。我们展示了如何使用这些机制来模块化验证一些有趣程序的死锁自由度,例如客户端-服务器程序的一些变体、公平读写锁和用餐哲学家,如果没有这种传输,这些程序就无法进行模块化验证。我们还将提出的基于分离逻辑的证明规则编码到VeriFast程序验证器中,并成功地验证了上述程序。

引用为

贾法尔·哈敏和巴特·雅各布斯。通过同步转移债务。在第33届面向对象编程欧洲会议(ECOOP 2019)上。《莱布尼茨国际信息学论文集》,第134卷,第19:1-19:58页,Schloss Dagstuhl–Leibniz Zentrum für Informatik(2019)


将BibTex复制到剪贴板

@会议记录{hamin_et_al:LIPIcs.ECOOP.2019.19,author={Hamin,Jafar和Jacobs,Bart},title={{通过同步转移债务}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={19:1--19:58},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.19},URN={URN:nbn:de:0030-drops-108113},doi={10.4230/LIPIcs.ECOOP.2019.19},annote={关键词:霍尔逻辑、分离逻辑、模块化程序验证、同步、转移义务、死锁自由}}
文件
工具洞察力文件
自动化大规模多语言动态程序分析(工具洞察论文)

作者:亚历克斯·维拉佐(Alex Villazón)、海阳太阳(Haiyang Sun)、安德烈亚·罗萨(Andrea Rosá)、爱德华多·罗萨莱斯(Eduardo Rosales)、丹尼尔·博内塔(Daniele Bonetta)、伊莎贝拉·德菲利皮斯(Isabella Defilippis)、塞


摘要
今天,开源软件的可用性是压倒性的,并且包存储库(如NPM、Maven或SBT)中的免费、现成的软件组件数量呈指数级增长。在这篇论文中,我们解决了两个简单但重要的研究问题:是否有可能开发一种工具,在大规模公共开源软件上自动化动态程序分析?此外,也许更重要的是,这样的工具有用吗?我们通过介绍NAB来回答第一个问题,NAB是一种工具,用于在野外对开源软件执行大规模动态程序分析。NAB是全自动、语言无关的,可以在开源软件上扩展动态程序分析,最多可以扩展到代码库中托管的数千个项目。使用NAB,我们分析了56K多个Node.js、Java和Scala项目。使用NAB收集的数据,我们能够(1)研究新语言结构(如JavaScriptPromises)的采用,(2)收集有关JavaScript中糟糕编码实践的统计数据,以及(3)确定适合包含在特定领域基准套件中的Java和Scala任务并行工作负载。我们认为这些发现和收集的数据是对第二个问题的肯定回答。

引用为

亚历克斯·维拉佐(Alex Villazón)、海阳太阳(Haiyang Sun)、安德烈亚·罗莎(Andrea Rosá)、爱德华多·罗莎莱斯(Eduardo Rosales)、丹尼尔·博内塔(Daniele Bonetta)、伊莎贝拉·德菲利皮斯(Isabella Defilippis)、塞尔。自动化大规模多语言动态程序分析(工具洞察论文)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第20:1-20:27页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{villazon_et_al:LIPIcs.ECOOP.2019.20,author={Villaz\'{o} n个,Alex和Sun,Haiyang和Ros,Andrea和Rosales,Eduardo和Bonetta,Daniele和Defilippis,Isabella和Oporto,Sergio和Binder,Walter,title={{自动化大规模多语言动态程序分析}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={20:1--20:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.20},URN={URN:nbn:de:0030-drops-108127},doi={10.4230/LIPIcs.ECOOP.2019.20},annote={关键词:动态程序分析、代码存储库、GitHub、Node.js、Java、Scala、promises、JIT-unfriendly代码、任务粒度}}
文件
工具洞察力文件
MagpieBridge:将静态分析集成到IDE和编辑器中的通用方法(工具洞察论文)

作者:罗玲慧、朱利安·杜比和埃里克·博登


摘要
过去,学术界已经创建了许多静态分析,但只有少数在工业中得到了广泛应用。开发人员采用的那些分析通常以插件的形式提供IDE支持,如果没有插件,开发人员就没有方便的机制来使用分析。因此,让开发人员更容易访问静态分析的关键是将分析集成到IDE和编辑器中。然而,将静态分析集成到IDE中是非常重要的:不同的IDE具有不同的UI工作流和API,编写此类插件需要这些方面的专业知识,而分析专家通常并不熟悉这样做。因此,特别是在学术界,大多数分析工具都是无头的,只有命令行界面。为了使静态分析更加有用,我们提出了MagpieBridge——一种将静态分析集成到IDE和编辑器中的通用方法。MagpieBridge将将m个分析集成到n个IDE中的mxn复杂性问题降低到m+n复杂性,因为每种分析和类型的插件只需为MagpieBridge本身执行一次。我们通过将Ariadne和CogniCrypt这两个现有分析集成到IDE中来演示我们的方法;这两种分析说明了MagpieBridge的通用性,因为它们基于不同的程序分析框架——分别是WALA和Soot——用于不同的应用领域——机器学习和安全——以及不同的编程语言——Python和Java。我们通过使用多个流行的IDE和编辑器,如Eclipse、IntelliJ、PyCharm、Jupyter、Sublime Text,甚至Emacs和Vim,进一步展示了MagpieBridge的通用性。

引用为

罗玲慧、朱利安·杜比和埃里克·博登。MagpieBridge:将静态分析集成到IDE和编辑器中的通用方法(工具洞察论文)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第21:1-21:25页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{luo_et_al:LIPIcs.ECOOP.2019.21,author={罗,凌辉和杜比,朱利安和博登,埃里克},title={{MagpieBridge:将静态分析集成到IDE和编辑器中的通用方法}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={21:1--21:25},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.21},URN={URN:nbn:de:0030-drops-108139},doi={10.4230/LIPIcs.ECOOP.2019.21},annote={关键词:IDE,工具支持,静态分析,语言服务器协议}}
文件
经验报告
Java程序转换的语义补丁(经验报告)

作者:洪金康(Hong Jin Kang)、费迪安·桑格(Ferdian Thung)、朱莉娅·劳尔(Julia Lawall)、吉尔斯·穆勒(Gilles Muller)、姜凌霄(Lingxiao Jiang)和大卫·罗(David Lo)


摘要
开发软件通常需要广泛应用于多个位置的代码更改。有一些Java工具允许开发人员指定程序匹配和源到源转换的模式。然而,据我们所知,没有一个允许基于代码的控制流上下文来转换代码。我们原型化了Coccinelle4J,这是Coccinell的一个扩展,是一个针对C代码的广泛更改而设计的程序转换工具,用于处理Java源代码。我们对Coccinelle进行了修改,使其能够将用语义补丁语言(Semantic Patch Language,SmPL)编写的脚本应用于Java源文件。作为一个案例研究,我们演示了Coccinelle4J在API迁移任务中的实用性。我们展示了在几个开源Android项目上从弃用的Android API方法迁移的6个语义补丁。我们描述了如何使用SmPL来表示几个API迁移,并证明了我们的几个设计决策的合理性。

引用为

洪金康(Hong Jin Kang)、费迪安·桑格(Ferdian Thung)、朱莉娅·劳尔(Julia Lawall)、吉勒斯·穆勒(Gilles Muller)、姜凌霄(Lingxiao Jiang)和大卫·罗(。Java程序转换的语义补丁(经验报告)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第22:1-22:27页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{kang_et_al:LIPIcs.ECOOP.2019.22,author={Kang、Hong Jin和Thung、Ferdian和Lawall、Julia和Muller、Gilles和Jiang、Lingxiao和Lo、David},title={{Java程序转换的语义补丁}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={22:1--22:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.22},URN={URN:nbn:de:0030-drops-108140},doi={10.4230/LIPIcs.ECOOP.2019.22},annote={Keywords:程序转换,Java}}
文件
珍珠
最小会话类型(Pearl)

作者:Alen Arslangić、Jorge A.Pérez和Erik Voogd


摘要
会话类型是一种基于类型的方法,用于验证消息传递程序。它们作为pi-calculus和Java等语言的类型系统进行了大量研究。会话类型指定应通过通道交换的内容和时间。会话类型语言的核心是类型和进程中的构造,这些构造指定了协议中的顺序。在这里,我们研究了最小会话类型,即没有排序的会话类型。这可以说是会话类型的最简单形式。通过依赖具有会话和高阶并发(抽象通过)的核心进程演算,我们证明了每个具有标准(非最小)会话类型的进程都可以编译成具有最小会话类型的过程。这意味着在进程和会话类型中都有排序结构是多余的;只有过程中的顺序性是不可或缺的,因为它可以精确地编纂类型中的顺序。我们的发展灵感来自帕罗关于非类型化过程的行为保持分解的工作。通过将Parrow的结果投射到类型化进程领域,我们的结果揭示了会话类型在概念上的简单公式,以及将会话类型集成到语言中而不按类型排序的原则途径。

引用为

Alen Arslanagić、Jorge A.Pérez和Erik Voogd。最小会话类型(Pearl)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第23:1-23:28页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{arslanagic_et_al:LIPIcs.ECOOP.2019.23,author={Arslanagi\'{c}、Alen和P\'{e} 雷兹Jorge A.和Voogd,Erik},title={{最小会话类型}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页码={23:1--23:28},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.23},URN={URN:nbn:de:0030-drops-108151},doi={10.4230/LIPIcs.ECOOP.2019.23},annote={关键词:会话类型,进程计算,pi-calculus}}
文件
珍珠
Julia的有效联合和协变元组分型算法(Pearl)

作者:Benjamin Chung、Francesco Zappa Nardelli和Jan Vitek


摘要
Julia编程语言支持多分派,并提供了一种丰富的类型注释语言来指定方法的适用性。当多个方法适用于给定调用时,Julia依靠方法签名之间的子类型来选择要调用的正确方法。Julia的子类型算法异常复杂,确定它是否正确仍然是一个悬而未决的问题。在本文中,我们关注这个问题的一部分:并集类型和协变元组之间的交互。以前的工作是将元组内的并集规范化为析取范式。然而,这种策略有两个缺点:复杂类型签名导致空间爆炸,以及规范化与Julia类型系统的其他特征之间的干扰。在本文中,我们描述了Julia用于计算元组和联合之间的子类型的算法,该算法不受空间爆炸的影响,并且能够很好地利用语言的其他特性。我们针对Coq中的语义子类型表示模型证明了该算法的正确性和完整性。

引用为

Benjamin Chung、Francesco Zappa Nardelli和Jan Vitek。Julia的子类型联合和协变元组的高效算法(Pearl)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第24:1-24:15页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{chung_et_al:LIPIcs.ECOOP.2019.24,author={Chung,Benjamin和Zappa Nardelli,Francesco和Vitek,Jan},title={{Julia's Subtyping Unions and Covariant Tuples}}}的高效算法,booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={24:1--24:15},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.24},URN={URN:nbn:de:0030-drops-108165},doi={10.4230/LPIcs.ECOP.2019.24},annote={关键字:类型系统,子类型,联合类型}}
文件
珍珠
最后,一种多态线性代数语言(Pearl)

作者:阿米尔·谢赫哈和莱昂内尔·帕罗


摘要
许多不同的数据分析任务归结为线性代数原语。实际上,对于每种不同类型的工作量,数据科学家都使用特定的专业库。在本文中,我们介绍了Pilatus,一种多态迭代线性代数语言,适用于各种类型的数据分析工作负载。这种特定领域语言(DSL)的设计受到数学和编程语言的启发:其基本结构借用了抽象代数,而其多态设计背后的关键技术使用无标记最终方法(即多态嵌入/对象代数)。这种设计使我们能够改变算术运算的行为,以表示矩阵代数、图算法、逻辑概率程序和可微程序。至关重要的是,Pilatus的多态设计允许我们使用多阶段编程和基于重写的优化来恢复专业代码的性能,支持固定大小的矩阵、代数优化和融合。

引用为

阿米尔·谢赫哈(Amir Shaikhha)和莱昂内尔·帕罗(Lionel Parreaux)。最后,一个多态线性代数语言(Pearl)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第25:1-25:29页,达格斯图尔-莱布尼兹-泽特鲁姆·福尔信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{shaikhha_et_al:LIPIcs.ECOOP.2019.25,author={Shaikhha、Amir和Parreaux、Lionel},title={{最后,一个多态线性代数语言}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={25:1--25:29},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.25},URN={URN:nbn:de:0030-drops-108172},doi={10.4230/LPIcs.ECOP.2019.25},annote={关键词:线性代数,领域特定语言,无标记词尾,多态嵌入,对象代数,多阶段编程,图处理,概率编程,自动微分}}
文件
勇敢的新想法文件
基于声明型系统规范的语言参数语义编辑器服务(Brave New Idea Paper)

作者:Daniel A.A.Pelsmaeker、Hendrik van Antwerpen和Eelco Visser


摘要
编辑器服务帮助程序员更有效地编写和理解代码。正确地实现编辑器服务并非易事。本文关注语义编辑器服务的规范,这些服务使用程序的语义模型。重构的规范是一个常见的研究主题,但许多其他语义编辑器服务很少受到关注。我们提出了一种定义语义编辑器服务的语言参数方法,使用编程语言静态语义的声明性规范和约束求解。编辑器服务被指定为约束问题,并使用语言规范来确保正确性。我们描述了以下语义编辑器服务的方法:引用解析、查找用法、goto子类、代码完成和提取定义重构。我们是在Statix(一种用于类型系统规范的约束语言)的上下文中完成的。我们从Statix约束的角度研究编辑器服务的规范,以及这些约束对合适的解算器的要求。

引用为

Daniel A.A.Pelsmaeker、Hendrik van Antwerpen和Eelco Visser。基于声明类型系统规范的语言参数语义编辑器服务(Brave New Idea Paper)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第26:1-26:18页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2019)


将BibTex复制到剪贴板

@会议记录{pelsmaeker_et_al:LIPIcs.ECOOP.2019.26,author={Pelsmaeker,Daniel A.A.和van Antwerpen,Hendrik和Visser,Eelco},title={{基于声明类型系统规范的语言参数语义编辑器服务}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={26:1--26:18},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},编辑={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.26},URN={URN:nbn:de:0030-drops-108182},doi={10.4230/LIPIcs.ECOOP.2019.26},annote={关键词:语义、约束求解、Statix、名称绑定、编辑器服务、引用解析、代码完成、重构}}
文件
勇敢的新想法文件
多元调试:非确定性程序的非确定性调试(Brave New Idea Paper)

作者:卡门·托雷斯-洛佩兹、罗伯特·古德普·辛格、斯特凡·马尔、伊丽莎·冈萨雷斯-博伊克斯和克里斯托夫·斯科利尔斯


摘要
当今的许多软件系统是并行或并发的。随着Node.js和更普遍的事件-操作体系结构的兴起,许多系统需要处理并发性。然而,它的非确定性行为使得很难重现错误。不幸的是,当今的交互式调试器不支持开发人员调试非确定性问题。它们只允许我们探索单一的执行路径。因此,有些错误可能永远不会在调试会话中重现,因为没有触发正确的条件。作为一种解决方案,我们提出了多元调试,这是一种调试非确定性程序的新方法,允许开发人员观察并行程序的所有可能执行路径,并以交互方式进行调试。我们引入了多元断点和单步执行的概念,它们可以在不同的执行路径(即Universe)中暂停程序。我们将多元调试应用于基于actor的语言AmbientTalk,从而产生了Voyager,一种在AmbientTalk操作语义之上实现的多元调试器。我们提供了不干涉的证明,即我们证明了调试器观察程序的行为不会影响该程序的行为,反之亦然。多元调试为交互式调试非确定性程序奠定了基础,我们相信这有助于并行和并发系统的开发。

引用为

卡门·托雷斯-洛佩兹、罗伯特·古德普·辛格、斯特凡·马尔、伊丽莎·冈萨雷斯-波伊克斯和克里斯托夫·斯科利尔斯。多元调试:非确定性程序的非确定性调试(Brave New Idea Paper)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第27:1-27:30页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@在诉讼中{torreslopez_et_al:LIPIcs.ECOOP.2019.27,作者={Torres Lopez,Carmen和Gurdeep Singh,Robbert和Marr,Stefan和Gonzalez Boix,Elisa和Scholliers,Christophe},title={{Multiverse Debugging:非确定性程序的非确定性调试}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={27:1--27:30},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},编辑={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.27},URN={URN:nbn:de:0030-drops-108192},doi={10.4230/LIPIcs.ECOOP.2019.27},annote={关键词:调试、并行、并发、参与者、形式语义}}
文件
勇敢的新想法文件
机器人交互的运动会话类型(Brave New Idea Paper)

作者:Rupak Majumdar、Marcus Pirron、Nobuko Yoshida和Damien Zufferey


摘要
机器人应用程序涉及通过消息同步编程并发组件,同时执行控制物理世界状态的运动原语。如今,这些应用程序通常是用低级命令式编程语言编写的,这些语言几乎不支持抽象或推理。我们提出了一个并发消息传递系统的统一编程模型,该模型额外控制物理状态变量的演化,以及基于多方会话类型的组合推理框架。我们的编程模型将消息传递并发进程与运动原语相结合。进程表示机器人装配中的自治组件,例如推车或机械臂,它们通过离散消息以及运动原语进行同步。控制器作用下的轨迹连续演化也由运动原语建模,运动原语在全局物理时间内运行。我们使用多方会话类型作为规范来协调离散的消息传递并发性和连续的轨迹流。全局会话类型指定具有关节运动原语的组件之间的通信协议。全局类型的投影确保了在端点联合执行的操作是通信安全和无死锁的,即会话类型的组件不会被卡住。这些检查一起为机器人组件的装配提供了一种组合验证方法,该方法涉及并发不变量(如通信的进度属性)以及动态不变量(如无碰撞)。我们实现了我们的核心语言,并通过初步实验,展示了如何使用多方会话类型来指定和组合验证使用标准机器人应用程序库在非现成和自定义硬件上实现的机器人系统。

引用为

Rupak Majumdar、Marcus Pirron、Nobuko Yoshida和Damien Zufferey。机器人交互的运动会话类型(Brave New Idea Paper)。第33届欧洲面向对象编程会议(ECOOP 2019)。莱布尼茨国际信息学论文集(LIPIcs),第134卷,第28:1-28:27页,达格斯图尔-莱布尼兹-泽特鲁姆信息学研究所(2019)


将BibTex复制到剪贴板

@会议记录{majumdar_et_al:LIPIcs.ECOOP.2019.28,作者={Majumdar,Rupak和Pirron,Marcus和Yoshida,Nobuko和Zufferey,Damien},title={{机器人交互的运动会话类型}},booktitle={第33届欧洲面向对象编程会议(ECOOP 2019)},页数={28:1--28:27},series={Leibniz国际信息学论文集(LIPIcs)},国际标准图书编号={978-3-95977-111-5},ISSN={1868-8969},年份={2019},体积={134},editor={Donaldson,Alastair F.},publisher={Schloss Dagstuhl--Leibniz Zentrum f{\“u}r Informatik},地址={Dagstuhl,德国},URL={https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.28},URN={URN:nbn:de:0030-drops-108205},doi={10.4230/LIPIcs.ECOOP.2019.28},annote={关键词:会话类型,机器人,并发编程,运动,通信,多方会话类型,死锁自由}}

过滤器


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

Dagstuhl出版社反馈


感谢您的反馈!

已提交反馈

无法发送消息

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