Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang最新文献

筛选
英文 中文
Transformations towards clean functional code 转换为干净的功能代码
Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang Pub Date : 2020-08-23 DOI: 10.1145/3406085.3409010
B. Poor, M. Tóth, István Bozó
{"title":"Transformations towards clean functional code","authors":"B. Poor, M. Tóth, István Bozó","doi":"10.1145/3406085.3409010","DOIUrl":"https://doi.org/10.1145/3406085.3409010","url":null,"abstract":"The programming style has an impact on the readability and comprehensibility of the source code, and it may also affect run-time performance. This statement also holds for functional languages when the functional style is mixed with imperative design. In this paper, we present a couple of methods that can refactor imperatively styled Erlang source-code into a more functionally styled one. This can be done by transforming unnecessary calls to length, hd and tl into pattern matching or by lifting particular nested expressions. The results of our investigations indicate that these refactorings can not only shorten the length of the source code but also affect the complexity/readability. In this paper, we present some refactorings; moreover, real-life examples and data for its validation.","PeriodicalId":202303,"journal":{"name":"Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123276137","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
Teaching practical realistic verification of distributed algorithms in Erlang with TLA+ 用TLA+教学Erlang分布式算法的实训验证
Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang Pub Date : 2020-08-23 DOI: 10.1145/3406085.3409009
Peter Zeller, Annette Bieniusa, Carla Ferreira
{"title":"Teaching practical realistic verification of distributed algorithms in Erlang with TLA+","authors":"Peter Zeller, Annette Bieniusa, Carla Ferreira","doi":"10.1145/3406085.3409009","DOIUrl":"https://doi.org/10.1145/3406085.3409009","url":null,"abstract":"Distributed systems are inherently complex as they need to address the interplay between features like communication, concurrency, and failure. Due to the inherent complexity of these interacting features, it is typically not possible to systematically test these kind of systems; yet, unexpected and unlikely combinations of events might cause corner cases that are hard to find. But since these systems are running typically for long durations, these events are likely to materialize eventually and must be handled correctly. Caught in such a dilemma, students are able to experience the benefits of applying verification tools to check their own algorithms and implementations. Having executable models with automatically generated executions allows them to experiment with different solutions by iteratively adapting and refining their algorithms. In this experience report, we report on our experience of teaching verification in a (hands-on) distributed systems course. We argue that broadcast algorithms provide a sweet spot in design and verification complexity. To this end, we give an implementation of these algorithms in Erlang and derive a TLA+ specification. TLA+ is a formal language for describing and reasoning about distributed and concurrent systems and provides a model checker, TLC, among other things. Our study reveals interesting parallels between the Erlang and TLA+ code, while exposing the challenges of formally modeling communication and parallelism in distributed systems. Presenting selected aspects of our course design, we aim to motivate the feasibility and need for introducing verification in close correspondence to programming tasks.","PeriodicalId":202303,"journal":{"name":"Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123384700","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
Clojerl: the expressive power of Clojure on the BEAM Clojure在BEAM上的表达能力
Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang Pub Date : 2020-08-23 DOI: 10.1145/3406085.3409012
Juan Facorro, Natalia Chechina
{"title":"Clojerl: the expressive power of Clojure on the BEAM","authors":"Juan Facorro, Natalia Chechina","doi":"10.1145/3406085.3409012","DOIUrl":"https://doi.org/10.1145/3406085.3409012","url":null,"abstract":"The development of new features and approaches in programming languages is a continuous and never-ending task, as languages are ultimately tools for expressing and solving problems. The past decade has seen a surge in languages implemented for the BEAM as part of a search to combine the fault-tolerance and scalability of the BEAM with a set of desired language features. In this paper we present Clojerl, an implementation of the Clojure language with a rich set of data processing capabilities and the expressive power of Lisp for the BEAM. The main design principles of Clojerl are to provide (1) seamless interoperability with the BEAM to enable frictionless interaction with other BEAM languages and (2) portability with Clojure to enable existing Clojure code to run on the BEAM with little or no modifications. We evaluate Clojerl by running a set of experiments that analyse the performance of eight most widely used expressions. While the results of complex expressions show that Clojerl requires further optimisations, Clojerl significantly outperforms Clojure in a set of basic expressions, confirming that Clojerl has the potential to provide a competitive performance while offering a rich set of programming language features.","PeriodicalId":202303,"journal":{"name":"Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang","volume":"450 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132847609","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
Secure design and verification of Erlang systems Erlang系统的安全设计与验证
Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang Pub Date : 2020-08-23 DOI: 10.1145/3406085.3409011
Viktória Fördős
{"title":"Secure design and verification of Erlang systems","authors":"Viktória Fördős","doi":"10.1145/3406085.3409011","DOIUrl":"https://doi.org/10.1145/3406085.3409011","url":null,"abstract":"Security is a critical part of software development, companies have the utmost responsibility to protect their customers data against any threat. Secure design is a key enabler, since it cultivates security awareness in software projects from day zero. In this paper it is shown how to apply the principles of secure design to Erlang software projects. An Erlang specific method to identify trust zones is presented. The high risk vulnerabilities of the Erlang ecosystem are reviewed and grouped together using the CIA triad model. A dataflow based static analysis together with a prototype to verify security posture of a trust zone are introduced and evaluated using Riak Core as a case study.","PeriodicalId":202303,"journal":{"name":"Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132635106","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
Machine-checked natural semantics for Core Erlang: exceptions and side effects Core Erlang的机器检查的自然语义:异常和副作用
Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang Pub Date : 2020-08-19 DOI: 10.1145/3406085.3409008
Péter Bereczky, Dániel Horpácsi, S. Thompson
{"title":"Machine-checked natural semantics for Core Erlang: exceptions and side effects","authors":"Péter Bereczky, Dániel Horpácsi, S. Thompson","doi":"10.1145/3406085.3409008","DOIUrl":"https://doi.org/10.1145/3406085.3409008","url":null,"abstract":"This research is part of a wider project that aims to investigate and reason about the correctness of scheme-based source code transformations of Erlang programs. In order to formally reason about the definition of a programming language and the software built using it, we need a mathematically rigorous description of that language. In this paper, we present an extended natural semantics for Core Erlang based on our previous formalisation implemented with the Coq Proof Assistant. This extension includes the concepts of exceptions and side effects, moreover, some modifications and updates are also discussed. Then we describe theorems about the properties of this formalisation (e.g. determinism), formal expression evaluation and equivalence examples. These equivalences can be interpreted as simple local refactorings.","PeriodicalId":202303,"journal":{"name":"Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang","volume":"139 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125946429","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
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学术官方微信