Proceedings of the 6th ACM SIGPLAN Symposium on Scala最新文献

筛选
英文 中文
Sound reasoning about integral data types with a reusable SMT solver interface 用可重用的SMT求解器接口对整型数据类型进行合理的推理
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774980
Régis Blanc, Viktor Kunčak
{"title":"Sound reasoning about integral data types with a reusable SMT solver interface","authors":"Régis Blanc, Viktor Kunčak","doi":"10.1145/2774975.2774980","DOIUrl":"https://doi.org/10.1145/2774975.2774980","url":null,"abstract":"We extend the Leon verification system for Scala with support for bit-vector reasoning, thus addressing one of its fundamental soundness limitation with respect to the treatment of integers primitives. We leverage significant progresses recently achieved in SMT solving by developing a solver-independent interface to easily configure the back-end of Leon. Our interface is based on the emerging SMT-LIB standard for SMT solvers, and we release a Scala library offering full support for the latest version of the standard. We use the standard BigInt Scala library to represent mathematical integers, whereas we correctly model Int as 32-bit integers. We ensure safety of arithmetic by checking for division by zero and correctly modeling division and modulo. We conclude with a performance comparison between the sound representation of Ints and the cleaner abstract representation using mathematical integers, and discuss the trade-off involved.","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115163548","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
SnapQueue: lock-free queue with constant time snapshots SnapQueue:固定时间快照的无锁队列
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774976
Aleksandar Prokopec
{"title":"SnapQueue: lock-free queue with constant time snapshots","authors":"Aleksandar Prokopec","doi":"10.1145/2774975.2774976","DOIUrl":"https://doi.org/10.1145/2774975.2774976","url":null,"abstract":"We introduce SnapQueues - concurrent, lock-free queues with a linearizable, lock-free global-state transition operation. This transition operation can atomically switch between arbitrary SnapQueue states, and is used by enqueue, dequeue, snapshot and concatenation operations. We show that implementing these operations efficiently depends on the persistent data structure at the core of the SnapQueue. This immutable support data structure is an interchangeable kernel of the SnapQueue, and drives its performance characteristics. The design allows reasoning about concurrent operation running time in a functional way, absent from concurrency considerations. We present a support data structure that enables O(1) queue operations, O(1) snapshot and O(log n) atomic concurrent concatenation. We show that the SnapQueue enqueue operation achieves up to 25% higher performance, while the dequeue operation has performance identical to standard lock-free concurrent queues.","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129763578","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}
引用次数: 17
Fold-based fusion as a library: a generative programming pearl 基于折叠的融合库:生成式编程的明珠
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774981
Manohar Jonnalagedda, Sandro Stucki
{"title":"Fold-based fusion as a library: a generative programming pearl","authors":"Manohar Jonnalagedda, Sandro Stucki","doi":"10.1145/2774975.2774981","DOIUrl":"https://doi.org/10.1145/2774975.2774981","url":null,"abstract":"Fusion is a program optimisation technique commonly implemented using special-purpose compiler support. In this paper, we present an alternative approach, implementing fold-based fusion as a standalone library. We use staging to compose operations on folds; the operations are partially evaluated away, yielding code that does not construct unnecessary intermediate data structures. The technique extends to partitioning and grouping of collections.","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131913957","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}
引用次数: 13
Referential integrity with Scala types Scala类型的引用完整性
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774979
Patrick Prémont
{"title":"Referential integrity with Scala types","authors":"Patrick Prémont","doi":"10.1145/2774975.2774979","DOIUrl":"https://doi.org/10.1145/2774975.2774979","url":null,"abstract":"Referential integrity constraints are critical elements of relational data models, and have found widespread use in industry. However, their benefits in terms of data integrity do not fully extend to program correctness. Constraint violations are identified at run-time and must then be handled appropriately by programs. We show how Scala can be used to build data models and programs where referential integrity is enforced at compile-time. Scala’s type system, with its variance annotations and path-dependent types, is especially suited to express these constraints and proofs in a natural manner. We also explore potential compiler improvements that could enhance support for type-checked referential integrity.","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124736388","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}
引用次数: 0
ESPeciaL: an embedded systems programming language special:一种嵌入式系统编程语言
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774982
Christopher Métrailler, Pierre-André Mudry
{"title":"ESPeciaL: an embedded systems programming language","authors":"Christopher Métrailler, Pierre-André Mudry","doi":"10.1145/2774975.2774982","DOIUrl":"https://doi.org/10.1145/2774975.2774982","url":null,"abstract":"The advent of off-the-shelf programmable embedded systems such as Arduino enables people with little programming skills to interact with the real-world using sensors and actuators. In this paper, we propose a novel approach aimed at simplifying the programming of embedded systems based on the dataflow paradigm. Named ESPeciaL, this programming framework removes the need of low-level programming in C/C++, as the application is written by connecting blocks that produce and consume data. Thus, an embedded application can be described in terms of ready-to-use blocks that correspond to the various micro-controller peripherals and to program function (multiplexers, logic gates, etc.). The user application itself is written as an embedded Scala DSL. From that code, the ESPeciaL compiler then generates the corresponding C++ code which can be tailored - using different back-ends - to match different embedded systems or a QEMU-based simulation environment. To demonstrate the validity of the approach, we present a typical embedded systems application implemented using ESPeciaL","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125476882","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}
引用次数: 2
Counter-example complete verification for higher-order functions 反例完成验证的高阶函数
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774978
Nicolas Voirol, Etienne Kneuss, Viktor Kunčak
{"title":"Counter-example complete verification for higher-order functions","authors":"Nicolas Voirol, Etienne Kneuss, Viktor Kunčak","doi":"10.1145/2774975.2774978","DOIUrl":"https://doi.org/10.1145/2774975.2774978","url":null,"abstract":"We present a verification procedure for pure higher-order functional Scala programs with parametric types. We show that our procedure is sound for proofs, as well as sound and complete for counter-examples. The procedure reduces the analysis of higher-order programs to checking satisfiability of a sequence of quantifier-free formulas over theories such as algebraic data types, integer linear arithmetic, and uninterpreted function symbols, thus enabling the use of efficient satisfiability modulo theory (SMT) solvers. Our solution supports arbitrary function types and arbitrarily nested anonymous functions (which can be stored in data structures, passed as arguments, returned, and applied). Among the contributions of this work is supporting even those cases when anonymous functions cannot be statically traced back to their definition, ensuring completeness of the approach for finding counter-examples. We provide a proof of soundness and counter-example completeness for our system as well as initial evaluation in the Leon verifier.","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129872758","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
Proceedings of the 6th ACM SIGPLAN Symposium on Scala 第六届ACM SIGPLAN Scala研讨会论文集
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975
Philipp Haller, Heather Miller
{"title":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","authors":"Philipp Haller, Heather Miller","doi":"10.1145/2774975","DOIUrl":"https://doi.org/10.1145/2774975","url":null,"abstract":"","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130556255","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}
引用次数: 0
Distributed programming in Scala with APGAS 使用APGAS在Scala中进行分布式编程
Proceedings of the 6th ACM SIGPLAN Symposium on Scala Pub Date : 2015-06-13 DOI: 10.1145/2774975.2774977
Philippe Suter, O. Tardieu, Josh Milthorpe
{"title":"Distributed programming in Scala with APGAS","authors":"Philippe Suter, O. Tardieu, Josh Milthorpe","doi":"10.1145/2774975.2774977","DOIUrl":"https://doi.org/10.1145/2774975.2774977","url":null,"abstract":"APGAS (Asynchronous Partitioned Global Address Space) is a model for concurrent and distributed programming, known primarily as the foundation of the X10 programming language. In this paper, we present an implementation of this model as an embedded domain-specific language for Scala. We illustrate common usage patterns and contrast with alternative approaches available to Scala programmers. In particular, using two distributed algorithms as examples, we illustrate how APGAS-style programs compare to idiomatic Akka implementations. We demonstrate the use of APGAS places and tasks, distributed termination, and distributed objects.","PeriodicalId":308206,"journal":{"name":"Proceedings of the 6th ACM SIGPLAN Symposium on Scala","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132119457","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}
引用次数: 2
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学术文献互助群
群 号:481959085
Book学术官方微信