Erlang Workshop最新文献

筛选
英文 中文
Refactoring with wrangler, updated: data and process refactorings, and integration with eclipse 使用wrangler重构,更新:数据和流程重构,以及与eclipse的集成
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411283
Huiqing Li, S. Thompson, George Orösz, M. Tóth
{"title":"Refactoring with wrangler, updated: data and process refactorings, and integration with eclipse","authors":"Huiqing Li, S. Thompson, George Orösz, M. Tóth","doi":"10.1145/1411273.1411283","DOIUrl":"https://doi.org/10.1145/1411273.1411283","url":null,"abstract":"Wrangler is a refactoring tool for Erlang, implemented in Erlang. This paper reports the latest developments in Wrangler, which include improved user experience, the introduction of a number of data- and process-related refactorings, and also the implementation of an Eclipse plug-in which, together with Erlide, provides refactoring support for Erlang in Eclipse.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125175488","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}
引用次数: 41
Early fault detection with model-based testing 使用基于模型的测试进行早期故障检测
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411276
Jonas Boberg
{"title":"Early fault detection with model-based testing","authors":"Jonas Boberg","doi":"10.1145/1411273.1411276","DOIUrl":"https://doi.org/10.1145/1411273.1411276","url":null,"abstract":"Current and future trends for software include increasingly complex requirements on interaction between systems. As a result, the difficulty of system testing increases. Model-based testing is a test technique where test cases are generated from a model of the system. In this study we explore model-based testing on the system level, starting from early development. We apply model-based testing to a subsystem of a message gateway product in order to improve early fault detection. The results are compared to another subsystem that is tested with hand-crafted test cases.\u0000 Based on our experiences, we present a set of challenges and recommendations for system-level, model-based testing. Our results indicate that model-based testing, starting from early development, significantly increases the number of faults detected during system testing.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134463357","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}
引用次数: 51
Scalaris: reliable transactional p2p key/value store Scalaris:可靠的事务性p2p密钥/值存储
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411280
T. Schütt, F. Schintke, A. Reinefeld
{"title":"Scalaris: reliable transactional p2p key/value store","authors":"T. Schütt, F. Schintke, A. Reinefeld","doi":"10.1145/1411273.1411280","DOIUrl":"https://doi.org/10.1145/1411273.1411280","url":null,"abstract":"We present Scalaris, an Erlang implementation of a distributed key/value store. It uses, on top of a structured overlay network, replication for data availability and majority based distributed transactions for data consistency. In combination, this implements the ACID properties on a scalable structured overlay.\u0000 By directly mapping the keys to the overlay without hashing, arbitrary key-ranges can be assigned to nodes, thereby allowing a better load-balancing than would be possible with traditional DHTs. Consequently, Scalaris can be tuned for fast data access by taking, e.g. the nodes' geographic location or the regional popularity of certain keys into account. This improves Scalaris' lookup speed in datacenter or cloud computing environments.\u0000 Scalaris is implemented in Erlang. We describe the Erlang software architecture, including the transactional Java interface to access Scalaris.\u0000 Additionally, we present a generic design pattern to implement a responsive server in Erlang that serializes update operations on a common state, while concurrently performing fast asynchronous read requests on the same state.\u0000 As a proof-of-concept we implemented a simplified Wikipedia frontend and attached it to the Scalaris data store backend. Wikipedia is a challenging application. It requires - besides thousands of concurrent read requests per seconds - serialized, consistent write operations. For Wikipedia's category and backlink pages, keys must be consistently changed within transactions. We discuss how these features are implemented in Scalaris and show its performance.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128225316","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}
引用次数: 133
A comparative evaluation of imperative and functional implementations of the imap protocol imap协议的命令式和功能性实现的比较评估
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411279
Francesco Cesarini, Viviana Pappalardo, C. Santoro
{"title":"A comparative evaluation of imperative and functional implementations of the imap protocol","authors":"Francesco Cesarini, Viviana Pappalardo, C. Santoro","doi":"10.1145/1411273.1411279","DOIUrl":"https://doi.org/10.1145/1411273.1411279","url":null,"abstract":"This paper describes a comparative analysis of several implementations of the IMAP4 client-side protocol, written in Erlang, C#, Java, Python and Ruby. The aim is basically to understand whether Erlang is able to fit the requirements of such a kind of applications, and also to study some parameters to evaluate the suitability of a language for the development of certain type of programs. We analysed five different libraries, comparing their characteristics through some software metrics: number of source lines of code, memory consumption, performances (execution time) and functionality of primitives. We describe pros and cons of each library and we conclude on the suitability of Erlang as a language for the implementation of protocol- and string-intensive TCP/IP-based applications.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"80 ","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120929027","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}
引用次数: 8
Erlang testing and tools survey Erlang测试和工具调查
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411277
Tamás Nagy, Anikó Nagyné Víg
{"title":"Erlang testing and tools survey","authors":"Tamás Nagy, Anikó Nagyné Víg","doi":"10.1145/1411273.1411277","DOIUrl":"https://doi.org/10.1145/1411273.1411277","url":null,"abstract":"As the commercial usage of Erlang increases, so does the need for mature development and testing tools. This paper aims to evaluate the available tools with their shortcomings, strengths and commercial usability compared to common practices in other languages.\u0000 To identify the needs of Erlang developers in this area we published an online survey advertising it in various media. The results of this survey and additional research in this field is presented. Through the comparison of tools and the requirements of the developers the paper identifies paths for future development.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"118 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122542607","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}
引用次数: 14
Testing Erlang data types with quviq quickcheck 使用quviq快速检查测试Erlang数据类型
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411275
T. Arts, Laura M. Castro, John Hughes
{"title":"Testing Erlang data types with quviq quickcheck","authors":"T. Arts, Laura M. Castro, John Hughes","doi":"10.1145/1411273.1411275","DOIUrl":"https://doi.org/10.1145/1411273.1411275","url":null,"abstract":"When creating software, data types are the basic bricks. Most of the time a programmer will use data types defined in library modules, therefore being tested by many users over many years. But sometimes, the appropriate data type is unavailable in the libraries and has to be constructed from scratch. In this way, new basic bricks are created, and potentially used in many products in the future. It pays off to test such data types thoroughly.\u0000 This paper presents a structured methodology to follow when testing data types using Quviq QuickCheck, a tool for random testing against specifications. The validation process will be explained carefully, from the convenience of defining a model for the datatype to be tested, to a strategy for better shrinking of failing test cases, and including the benefits of working with symbolic representations.\u0000 The leading example in this paper is a data type implemented for a risk management information system, a commercial product developed in Erlang, that has been used on a daily basis for several years.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133548995","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}
引用次数: 43
High-performance technical computing with erlang 使用erlang进行高性能技术计算
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411281
A. Scalas, G. Casu, P. Pili
{"title":"High-performance technical computing with erlang","authors":"A. Scalas, G. Casu, P. Pili","doi":"10.1145/1411273.1411281","DOIUrl":"https://doi.org/10.1145/1411273.1411281","url":null,"abstract":"High-performance Technical Computing (HPTC) is a branch of HPC (High-performance Computing) that deals with scientific applications, such as physics simulations. Due to its numerical nature, it has been traditionally based on low-level or mathematically-oriented languages (C, C++, Fortran), extended with libraries that implement remote execution and inter-process communication (like MPI and PVM).\u0000 But those libraries just provide what Erlang does out-of-the-box: networking, process distribution, concurrency, interprocess communication and fault tolerance. So, is it possible to use Erlang as a foundation for developing HPTC applications?\u0000 This paper shows our experiences in using Erlang for distributed number-crunching systems. We introduce two extensions: a simple and efficient foreign function interface (FFI), and an Erlang binding for numerical libraries. We use them as a basis for developing a simple mathematically-oriented programming language (in the style of Matlab™) compiled into Core Erlang. These tools are later used for creating a HPTC framework (based on message-passing) and an IDE for distributed applications.\u0000 The results of this research and development show that Erlang/OTP can be used as a platform for developing large and scalable numerical applications.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122322448","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
Gradual typing of erlang programs: a wrangler experience erlang程序的渐进式输入:一个牧马人的经验
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411284
Konstantinos Sagonas, D. Luna
{"title":"Gradual typing of erlang programs: a wrangler experience","authors":"Konstantinos Sagonas, D. Luna","doi":"10.1145/1411273.1411284","DOIUrl":"https://doi.org/10.1145/1411273.1411284","url":null,"abstract":"Currently most Erlang programs contain no or very little type information. This sometimes makes them unreliable, hard to use, and difficult to understand and maintain. In this paper we describe our experiences from using static analysis tools to gradually add type information to a medium sized Erlang application that we did not write ourselves: the code base of Wrangler. We carefully document the approach we followed, the exact steps we took, and discuss possible difficulties that one is expected to deal with and the effort which is required in the process. We also show the type of software defects that are typically brought forward, the opportunities for code refactoring and improvement, and the expected benefits from embarking in such a project. We have chosen Wrangler for our experiment because the process is better explained on a code base which is small enough so that the interested reader can retrace its steps, yet large enough to make the experiment quite challenging and the experiences worth writing about. However, we have also done something similar on large parts of Erlang/OTP. The result can partly be seen in the source code of Erlang/OTP R12B-3.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130607358","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
Refactoring module structure 重构模块结构
Erlang Workshop Pub Date : 2008-09-27 DOI: 10.1145/1411273.1411285
L. Lövei, Csaba Hoch, Hanna Köllö, Tamás Nagy, Anikó Nagyné Víg, Dániel Horpácsi, R. Kitlei, Roland Király
{"title":"Refactoring module structure","authors":"L. Lövei, Csaba Hoch, Hanna Köllö, Tamás Nagy, Anikó Nagyné Víg, Dániel Horpácsi, R. Kitlei, Roland Király","doi":"10.1145/1411273.1411285","DOIUrl":"https://doi.org/10.1145/1411273.1411285","url":null,"abstract":"This paper focuses on restructuring software written in Erlang. In large software projects, it is a common problem that internal structural complexity can grow to an extent where maintenance becomes impossible. This situation can be avoided by careful design, building loosely coupled components with strictly defined interfaces. However, when these design decisions are not made in the right time, it becomes necessary to split an already working software into such components, without breaking its functionality. There is strong industrial demand for such transformations in refactoring legacy code.\u0000 A refactoring tool is very useful in the execution of such a restructuring. This paper shows that the semantical analysis required for refactoring is also useful for making suggestions on clustering. Existing analysis results are used to cover the whole process of module restructuring, starting with planning the new structure, and finishing by making the necessary source code transformations.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"140 ","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133719065","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}
引用次数: 15
Programming distributed erlang applications: pitfalls and recipes 编写分布式erlang应用程序:陷阱和方法
Erlang Workshop Pub Date : 2007-10-05 DOI: 10.1145/1292520.1292527
Hans Svensson, Lars-Åke Fredlund
{"title":"Programming distributed erlang applications: pitfalls and recipes","authors":"Hans Svensson, Lars-Åke Fredlund","doi":"10.1145/1292520.1292527","DOIUrl":"https://doi.org/10.1145/1292520.1292527","url":null,"abstract":"We investigate the distributed part of the Erlang programminglanguage, with an aim to develop robust distributed systems andalgorithms running on top of Erlang runtime systems. Although the stepto convert an application running on a single node to a fullydistributed (multi-node) application is deceptively simple (changingcalls to spawn so that processes are spawned on differentnodes), there are some corner cases in the Erlang language and APIwhere the introduction of distribution can cause problems. In thispaper we discuss a number of such pitfalls, where the semantics ofcommunicating processes differs significantly depending if theprocesses reside on the same node or not, we also provide someguidelines for safe programming of distributed systems.","PeriodicalId":140676,"journal":{"name":"Erlang Workshop","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133982334","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
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学术官方微信