European Conference on Object-Oriented Programming最新文献

筛选
英文 中文
A Typing Discipline for Hardware Interfaces 硬件接口的输入规则
European Conference on Object-Oriented Programming Pub Date : 2019-07-10 DOI: 10.4230/LIPIcs.ECOOP.2019.6
Jan de Muijnck-Hughes, W. Vanderbauwhede
{"title":"A Typing Discipline for Hardware Interfaces","authors":"Jan de Muijnck-Hughes, W. Vanderbauwhede","doi":"10.4230/LIPIcs.ECOOP.2019.6","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.6","url":null,"abstract":"Modern Systems-on-a-Chip (SoC) are constructed by composition of IP (Intellectual Property) Cores with the communication between these IP Cores being governed by well described interaction protocols. However, there is a disconnect between the machine readable specification of these protocols and the verification of their implementation in known hardware description languages. Although tools can be written to address such separation of concerns, the tooling is often hand written and used to check hardware designs a posteriori. We have developed a dependent type-system and proof-of-concept modelling language to reason about the physical structure of hardware interfaces using user provided descriptions. Our type-system provides correct-by-construction guarantees that the interfaces on an IP Core will be well-typed if they adhere to a specified standard.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"82 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127756980","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Scopes and Frames Improve Meta-Interpreter Specialization 作用域和框架改进了元解释器的专门化
European Conference on Object-Oriented Programming Pub Date : 2019-07-01 DOI: 10.4230/LIPIcs.ECOOP.2019.4
V. Vergu, A. Tolmach, E. Visser
{"title":"Scopes and Frames Improve Meta-Interpreter Specialization","authors":"V. Vergu, A. Tolmach, E. Visser","doi":"10.4230/LIPIcs.ECOOP.2019.4","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.4","url":null,"abstract":"DynSem is a domain-specific language for concise specification of the dynamic semantics of programming languages, aimed at rapid experimentation and evolution of language designs. To maintain a short definition-to-execution cycle, DynSem specifications are meta-interpreted. Meta-interpretation introduces runtime overhead that is difficult to remove by using interpreter optimization frameworks such as the Truffle/Graal Java tools; previous work has shown order-of-magnitude improvements from applying Truffle/Graal to a meta-interpreter, but this is still far slower than what can be achieved with a language-specific interpreter. In this paper, we show how specifying the meta-interpreter using scope graphs, which encapsulate static name binding and resolution information, produces much better optimization results from Truffle/Graal. Furthermore, we identify that JIT compilation is hindered by large numbers of calls between small polymorphic rules and we introduce rule cloning to derive larger monomorphic rules at run time as a countermeasure. Our contributions improve the performance of DynSem-derived interpreters to within an order of magnitude of a handwritten language-specific interpreter.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116777568","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Godot: All the Benefits of Implicit and Explicit Futures 戈多:隐性和显性未来的所有好处
European Conference on Object-Oriented Programming Pub Date : 2019-07-01 DOI: 10.4230/LIPIcs.ECOOP.2019.2
Kiko Fernandez-Reyes, D. Clarke, L. Henrio, E. Johnsen, Tobias Wrigstad
{"title":"Godot: All the Benefits of Implicit and Explicit Futures","authors":"Kiko Fernandez-Reyes, D. Clarke, L. Henrio, E. Johnsen, Tobias Wrigstad","doi":"10.4230/LIPIcs.ECOOP.2019.2","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.2","url":null,"abstract":"Concurrent programs often make use of futures, handles to the results of asynchronous operations. Futures provide means to communicate not yet computed results, and simplify the implementation of o ...","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125213444","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4 如何避免犯下十亿美元的错误:使用SafeP4进行类型安全数据平面编程
European Conference on Object-Oriented Programming Pub Date : 2019-06-17 DOI: 10.4230/LIPIcs.ECOOP.2019.12
Matthias Eichholz, E. Campbell, Nate Foster, G. Salvaneschi, M. Mezini
{"title":"How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4","authors":"Matthias Eichholz, E. Campbell, Nate Foster, G. Salvaneschi, M. Mezini","doi":"10.4230/LIPIcs.ECOOP.2019.12","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.12","url":null,"abstract":"The P4 programming language offers high-level, declarative abstractions that bring the flexibility of software to the domain of networking. Unfortunately, the main abstraction used to represent packet data in P4, namely header types, lacks basic safety guarantees. Over the last few years, experience with an increasing number of programs has shown the risks of the unsafe approach, which often leads to subtle software bugs. \u0000This paper proposes SafeP4, a domain-specific language for programmable data planes in which all packet data is guaranteed to have a well-defined meaning and satisfy essential safety guarantees. We equip SafeP4 with a formal semantics and a static type system that statically guarantees header validity---a common source of safety bugs according to our analysis of real-world P4 programs. Statically ensuring header validity is challenging because the set of valid headers can be modified at runtime, making it a dynamic program property. Our type system achieves static safety by using a form of path-sensitive reasoning that tracks dynamic information from conditional statements, routing tables, and the control plane. Our evaluation shows that SafeP4's type system can effectively eliminate common failures in many real-world programs.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121506114","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Multiverse Debugging: Non-Deterministic Debugging for Non-Deterministic Programs (Brave New Idea Paper) 多重宇宙调试:非确定性程序的非确定性调试(Brave New Idea Paper)
European Conference on Object-Oriented Programming Pub Date : 2019-04-01 DOI: 10.4230/LIPIcs.ECOOP.2019.27
Carmen Torres Lopez, Robbert Gurdeep Singh, Stefan Marr, E. G. Boix, Christophe Scholliers
{"title":"Multiverse Debugging: Non-Deterministic Debugging for Non-Deterministic Programs (Brave New Idea Paper)","authors":"Carmen Torres Lopez, Robbert Gurdeep Singh, Stefan Marr, E. G. Boix, Christophe Scholliers","doi":"10.4230/LIPIcs.ECOOP.2019.27","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.27","url":null,"abstract":"Many of today's software systems are parallel or concurrent. With the rise of Node.js and more generally event-loop architectures, many systems need to handle concurrency. However, its non-deterministic behavior makes it hard to reproduce bugs. Today's interactive debuggers unfortunately do not support developers in debugging non-deterministic issues. They only allow us to explore a single execution path. Therefore, some bugs may never be reproduced in the debugging session, because the right conditions are not triggered. \u0000As a solution, we propose multiverse debugging, a new approach for debugging non-deterministic programs that allows developers to observe all possible execution paths of a parallel program and debug it interactively. We introduce the concepts of multiverse breakpoints and stepping, which can halt a program in different execution paths, i.e. universes. We apply multiverse debugging to AmbientTalk, an actor-based language, resulting in Voyager, a multiverse debugger implemented on top of the AmbientTalk operational semantics. We provide a proof of non-interference, i.e., we prove that observing the behavior of a program by the debugger does not affect the behavior of that program and vice versa. Multiverse debugging establishes the foundation for debugging non-deterministic programs interactively, which we believe can aid the development of parallel and concurrent systems.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121502496","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Reliable State Machines: A Framework for Programming Reliable Cloud Services 可靠状态机:编写可靠云服务的框架
European Conference on Object-Oriented Programming Pub Date : 2019-02-25 DOI: 10.4230/LIPIcs.ECOOP.2019.18
Suvam Mukherjee, N. Raj, Krishnan Govindraj, Pantazis Deligiannis, Chandramouleswaran Ravichandran, A. Lal, Aseem Rastogi, R. Krishnaswamy
{"title":"Reliable State Machines: A Framework for Programming Reliable Cloud Services","authors":"Suvam Mukherjee, N. Raj, Krishnan Govindraj, Pantazis Deligiannis, Chandramouleswaran Ravichandran, A. Lal, Aseem Rastogi, R. Krishnaswamy","doi":"10.4230/LIPIcs.ECOOP.2019.18","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.18","url":null,"abstract":"Building reliable applications for the cloud is challenging because of unpredictable failures during a program's execution. This paper presents a programming framework called Reliable State Machines (RSMs), that offers fault-tolerance by construction. Using our framework, a programmer can build an application as several (possibly distributed) RSMs that communicate with each other via messages, much in the style of actor-based programming. Each RSM is additionally fault-tolerant by design and offers the illusion of being \"always-alive\". An RSM is guaranteed to process each input request exactly once, as one would expect in a failure-free environment. The RSM runtime automatically takes care of persisting state and rehydrating it on a failover. We present the core syntax and semantics of RSMs, along with a formal proof of failure-transparency. We provide an implementation of the RSM framework and runtime on the .NET platform for deploying services to Microsoft Azure. We carried out an extensive performance evaluation on micro-benchmarks to show that one can build high-throughput applications with RSMs. We also present a case study where we rewrote a significant part of a production cloud service using RSMs. The resulting service has simpler code and exhibits production-grade performance.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-02-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114502401","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
A Program Logic for First-Order Encapsulated WebAssembly 一阶封装WebAssembly的程序逻辑
European Conference on Object-Oriented Programming Pub Date : 2018-11-08 DOI: 10.4230/LIPICS.ECOOP.2019.9
Conrad Watt, P. Maksimovic, N. Krishnaswami, Philippa Gardner
{"title":"A Program Logic for First-Order Encapsulated WebAssembly","authors":"Conrad Watt, P. Maksimovic, N. Krishnaswami, Philippa Gardner","doi":"10.4230/LIPICS.ECOOP.2019.9","DOIUrl":"https://doi.org/10.4230/LIPICS.ECOOP.2019.9","url":null,"abstract":"We introduce Wasm Logic, a sound program logic for first-order, encapsulated WebAssembly. We design a novel assertion syntax, tailored to WebAssembly's stack-based semantics and the strong guarantees given by WebAssembly's type system, and show how to adapt the standard separation logic triple and proof rules in a principled way to capture WebAssembly's uncommon structured control flow. Using Wasm Logic, we specify and verify a simple WebAssembly B-tree library, giving abstract specifications independent of the underlying implementation. We mechanise Wasm Logic and its soundness proof in full in Isabelle/HOL. As part of the soundness proof, we formalise and fully mechanise a novel, big-step semantics of WebAssembly, which we prove equivalent, up to transitive closure, to the original WebAssembly small-step semantics. Wasm Logic is the first program logic for WebAssembly, and represents a first step towards the creation of static analysis tools for WebAssembly.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132141012","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Reasoning About Foreign Function Interfaces Without Modelling the Foreign Language 在没有对外语建模的情况下对外来函数接口进行推理
European Conference on Object-Oriented Programming Pub Date : 2018-10-28 DOI: 10.4230/LIPIcs.ECOOP.2019.16
Alexi Turcotte, Ellen Arteca, G. Richards
{"title":"Reasoning About Foreign Function Interfaces Without Modelling the Foreign Language","authors":"Alexi Turcotte, Ellen Arteca, G. Richards","doi":"10.4230/LIPIcs.ECOOP.2019.16","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2019.16","url":null,"abstract":"Object-oriented programming has long been regarded as too inefficient for SIMD high-performance computing, despite the fact that many important HPC applications have an inherent object structure. On SIMD accelerators, including GPUs, this is mainly due to performance problems with memory allocation and memory access: There are a few libraries that support parallel memory allocation directly on accelerator devices, but all of them suffer from uncoalesed memory accesses. \u0000We discovered a broad class of object-oriented programs with many important real-world applications that can be implemented efficiently on massively parallel SIMD accelerators. We call this class Single-Method Multiple-Objects (SMMO), because parallelism is expressed by running a method on all objects of a type. \u0000To make fast GPU programming available to average programmers, we developed DynaSOAr, a CUDA framework for SMMO applications. DynaSOAr consists of (1) a fully-parallel, lock-free, dynamic memory allocator, (2) a data layout DSL and (3) an efficient, parallel do-all operation. DynaSOAr achieves performance superior to state-of-the-art GPU memory allocators by controlling both memory allocation and memory access. \u0000DynaSOAr improves the usage of allocated memory with a Structure of Arrays data layout and achieves low memory fragmentation through efficient management of free and allocated memory blocks with lock-free, hierarchical bitmaps. Contrary to other allocators, our design is heavily based on atomic operations, trading raw (de)allocation performance for better overall application performance. In our benchmarks, DynaSOAr achieves a speedup of application code of up to 3x over state-of-the-art allocators. Moreover, DynaSOAr manages heap memory more efficiently than other allocators, allowing programmers to run up to 2x larger problem sizes with the same amount of memory.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"547 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116242917","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
KafKa: Gradual Typing for Objects KafKa:对象的渐进类型
European Conference on Object-Oriented Programming Pub Date : 2018-07-16 DOI: 10.4230/LIPIcs.ECOOP.2018.12
Benjamin Chung, Paley Li, Francesco Zappa Nardelli, J. Vitek
{"title":"KafKa: Gradual Typing for Objects","authors":"Benjamin Chung, Paley Li, Francesco Zappa Nardelli, J. Vitek","doi":"10.4230/LIPIcs.ECOOP.2018.12","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2018.12","url":null,"abstract":"A wide range of gradual type systems have been proposed, providing many languages with the ability to mix typed and untyped code. However, hiding under language details, these gradual type systems embody fundamentally different ideas of what it means to be well-typed. In this paper, we show that four of the most common gradual type systems provide distinct guarantees, and we give a formal framework for comparing gradual type systems for object-oriented languages. First, we show that the different gradual type systems are practically distinguishable via a three-part litmus test. We present a formal framework for defining and comparing gradual type systems. Within this framework, different gradual type systems become translations between a common source and target language, allowing for direct comparison of semantics and guarantees.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"93 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134400398","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 20
FHJ: A Formal Model for Hierarchical Dispatching and Overriding 层次化调度与覆盖的形式化模型
European Conference on Object-Oriented Programming Pub Date : 2018-07-10 DOI: 10.4230/LIPIcs.ECOOP.2018.20
Yanlin Wang, Haoyuan Zhang, B. C. D. S. Oliveira, M. Servetto
{"title":"FHJ: A Formal Model for Hierarchical Dispatching and Overriding","authors":"Yanlin Wang, Haoyuan Zhang, B. C. D. S. Oliveira, M. Servetto","doi":"10.4230/LIPIcs.ECOOP.2018.20","DOIUrl":"https://doi.org/10.4230/LIPIcs.ECOOP.2018.20","url":null,"abstract":"© Yanlin Wang, Haoyuan Zhang, Bruno C. d. S. Oliveira, and Marco Servetto. Multiple inheritance is a valuable feature for Object-Oriented Programming. However, it is also tricky to get right, as illustrated by the extensive literature on the topic. A key issue is the ambiguity arising from inheriting multiple parents, which can have conflicting methods. Numerous existing work provides solutions for conflicts which arise from diamond inheritance: i.e. conflicts that arise from implementations sharing a common ancestor. However, most mechanisms are inadequate to deal with unintentional method conflicts: conflicts which arise from two unrelated methods that happen to share the same name and signature. This paper presents a new model called Featherweight Hierarchical Java (FHJ) that deals with unintentional method conflicts. In our new model, which is partly inspired by C++, conflicting methods arising from unrelated methods can coexist in the same class, and hierarchical dispatching supports unambiguous lookups in the presence of such conflicting methods. To avoid ambiguity, hierarchical information is employed in method dispatching, which uses a combination of static and dynamic type information to choose the implementation of a method at run-time. Furthermore, unlike all existing inheritance models, our model supports hierarchical method overriding: that is, methods can be independently overridden along the multiple inheritance hierarchy. We give illustrative examples of our language and features and formalize FHJ as a minimal Featherweight-Java style calculus.","PeriodicalId":172012,"journal":{"name":"European Conference on Object-Oriented Programming","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128064974","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信