Filters








299 Hits in 2.1 sec

Automatic refactoring of Erlang programs

Konstantinos Sagonas, Thanassis Avgerinos
2009 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming - PPDP '09  
In contrast to other refactoring tools, tidier is completely automatic and is not tied to any particular editor or IDE.  ...  Last but not least, our paper describes in detail the automatic code cleanup methodology we advocate and a set of refactorings which are general enough to be applied, as is or with only small modifications  ...  Acknowledgements Although by now there are relatively few remains of erl tidy's original code in the source code of tidier, the erl tidy module of the syntax tools library has served both as inspiration  ... 
doi:10.1145/1599410.1599414 dblp:conf/ppdp/SagonasA09 fatcat:xhnlptlz3jhz3bvoduh34timn4

Cleaning up Erlang code is a dirty job but somebody's gotta do it

Thanassis Avgerinos, Konstantinos Sagonas
2009 Proceedings of the 8th ACM SIGPLAN workshop on Erlang - Erlang '09  
In addition, we present concrete examples of code improvements and our experiences from using a software tool with these capabilities, tidier, on Erlang code bases of significant size.  ...  This paper describes opportunities for automatically modernizing Erlang applications, cleaning them up, eliminating certain bad smells from their code and occasionally also improving their performance.  ...  Acknowledgements We thank Richard Carlsson, Björn Gustavsson, and Kenneth Lundin for supportive comments and suggestions for refactorings.  ... 
doi:10.1145/1596600.1596602 dblp:conf/erlang/AvgerinosS09 fatcat:lwpvncopn5chjfipe3qhumu4yq

Towards semi-automatic data-type translation for parallelism in Erlang

Adam D. Barwell, Christopher Brown, David Castro, Kevin Hammond
2016 Proceedings of the 15th International Workshop on Erlang - Erlang 2016  
Acknowledgments This work has been partially supported by the EU H2020 grant "RePhrase: Refactoring Parallel Heterogeneous Resource-Aware Applications -a Software Engineering Approach" (ICT-644235), by  ...  We have discussed a new type-translation refactoring that is designed to automatically translate Erlang list structures and operations to equivalent binary and ETS forms and applied our approach to the  ...  Our recursive descent refactoring consists of a setup phase, converting the input list xs, and a recursive phase that inspects each statement in the program, refactoring those that are relevant to xs  ... 
doi:10.1145/2975969.2975978 dblp:conf/erlang/BarwellBCH16 fatcat:l4wlnfujfrcodoclv7ihcpciq4

Automated API migration in a user-extensible refactoring tool for Erlang programs

Huiqing Li, Simon Thompson
2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering - ASE 2012  
Wrangler is a refactoring and code inspection tool for Erlang programs.  ...  This paper reports an extension to Wrangler's extension framework, supporting the automatic generation of API migration refactorings from a user-defined adapter module.  ...  A layer of commonly-used components which handles static analyses of Erlang programs, parsing programs into ASTs, AST traversals, rendering of new source code after a refactoring, support of undo, preview  ... 
doi:10.1145/2351676.2351727 dblp:conf/kbse/LiT12 fatcat:h4rd3hhamfe55c3kj75xyl6y6q

Comparative Study of Refactoring Haskell and Erlang Programs

Huiqing Li, Simon Thompson
2006 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation  
Taking Haskell and Erlang as examples, we investigate the application of refactoring techniques to functional programs, and building tools for supporting interactive refactoring.  ...  refactoring Haskell and Erlang programs. module Fact(fac) where fac :: Int -> Int fac 0 = 1 fac n | n>0 = n * fac(n-1)  ...  This refactoring is lesswell suited for Erlang programs because Erlang does not allow the use of user-defined functions in guards.  ... 
doi:10.1109/scam.2006.8 dblp:conf/scam/LiT06 fatcat:4tfmrahgd5aw5kut5qe7kquo7y

Refactoring Support for Modularity Maintenance in Erlang

Huiqing Li, Simon Thompson
2010 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation  
We demonstrate how Wrangler, a general-purpose refactoring tool for Erlang, can be used to maintain and improve the modularity of programs written in Erlang without dramatically changing the existing module  ...  We identify a set of "modularity smells" and show how they can be detected by Wrangler and removed by way of a variety of refactorings implemented in Wrangler.  ...  Wrangler's support for automatic searching of sub-components proved to be very helpful. Implementation Considerations Erlang is a general-purpose functional programming language.  ... 
doi:10.1109/scam.2010.17 dblp:conf/scam/LiT10 fatcat:3vf7cz2zafcnjowffocefoxjmi

Safe Concurrency Introduction through Slicing

Huiqing Li, Simon Thompson
2015 Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation - PEPM '15  
In this paper, we introduce three novel refactorings for retrofitting concurrency to Erlang applications, and demonstrate how the use of program slicing makes the automation of these refactorings possible  ...  Traditional refactoring is about modifying the structure of existing code without changing its behaviour, but with the aim of making code easier to understand, modify, or reuse.  ...  In Section 3, we give an overview of the existing refactoring and slicing support for Erlang programs.  ... 
doi:10.1145/2678015.2682533 dblp:conf/pepm/LiT15 fatcat:jswfb3temjc5bpddfgwcfgbhay

Towards Trustworthy Refactoring in Erlang

Dániel Horpácsi, Judit Kőszegi, Simon Thompson
2016 Electronic Proceedings in Theoretical Computer Science  
To demonstrate the applicability of our approach, we show how to define and verify a number of example refactorings in the system.  ...  We propose a simple, high-level but rigorous, notation for defining refactoring transformations in Erlang, and show that this notation provides an extensible, verifiable and executable specification language  ...  We are grateful to Andrei Arusoaie and Dorel Lucanu for providing us with the pre-release copy of the SCC extension of K used to perform some of the verifications reported here.  ... 
doi:10.4204/eptcs.216.5 fatcat:fycjcmuyzzhyxgwrz3qyd4ueri

Property-Based Testing - The ProTest Project [chapter]

John Derrick, Neil Walkinshaw, Thomas Arts, Clara Benac Earle, Francesco Cesarini, Lars-Ake Fredlund, Victor Gulias, John Hughes, Simon Thompson
2010 Lecture Notes in Computer Science  
Erlang.  ...  In this paper we provide an overview of the project goals, as well as detailing initial progress in developing property based testing techniques and tools for the concurrent functional programming language  ...  ) to ease the task of constructing a verifiable model from an Erlang program.  ... 
doi:10.1007/978-3-642-17071-3_13 fatcat:lmmpqlf74ndqfljsqwfj3nrx6y

Paraphrasing: Generating Parallel Programs Using Refactoring [chapter]

Christopher Brown, Kevin Hammond, Marco Danelutto, Peter Kilpatrick, Holger Schöner, Tino Breddin
2013 Lecture Notes in Computer Science  
Refactoring is the process of changing the structure of a program without changing its behaviour. Refactoring has so far only really been deployed effectively for sequential programs.  ...  To motivate our design, we refactor a number of examples in C, C++ and Erlang into good parallel implementations, using a set of formal pattern rewrite rules.  ...  Erlang Example We now show how to refactor an equivalent skeleton implementation of the same task farm in Erlang. Erlang [?]  ... 
doi:10.1007/978-3-642-35887-6_13 fatcat:zrptvlendnhjzpb2zxq3l6tisu

Improved Testing through Refactoring: Experience from the ProTest Project [chapter]

Huiqing Li, Simon Thompson
2010 Lecture Notes in Computer Science  
While some of the observations are Erlang-specific, others apply to test code in general. We argue that refactoring is particularly valuable within testing.  ...  This has been achieved through the removal of code clones, the identification of properties for property-based testing and the definition of testing-aware refactorings and test-framework-specific refactorings  ...  Conclusions We have shown the various ways that refactoring tools can improve testing for Erlang programs, and reflected on aspects of each of these.  ... 
doi:10.1007/978-3-642-15585-7_21 fatcat:ioyuh5jxbncrthgvvp4qlhtxo4

A language-independent parallel refactoring framework

Christopher Brown, Kevin Hammond, Marco Danelutto, Peter Kilpatrick
2012 Proceedings of the Fifth Workshop on Refactoring Tools - WRT '12  
While refactoring has so far mainly been applied to sequential programs, it is our contention that refactoring can play a key role in significantly improving the programmability of parallel systems, by  ...  allowing the programmer to apply a set of well-defined transformations in order to parallelise their programs.  ...  Moreover, with additional tools such as QuickCheck [1] for Erlang, it is possible to prove functional correctness of the refactored parallel programs automatically, as part of the refactoring process  ... 
doi:10.1145/2328876.2328884 dblp:conf/icse/BrownHDK12 fatcat:5ujoz52tkvax7cb7egshdoq4o4

Automating property-based testing of evolving web services

Huiqing Li, Simon Thompson, Pablo Lamela Seijas, Miguel Angel Francisco
2014 Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation - PEPM '14  
and the automatic generation of refactoring scripts for evolving the test code.  ...  added to Wrangler, the Erlang refactoring tool.  ...  Wrangler, developed at the University of Kent by the some of the authors, is a user-extensible refactoring and code inspection tool for Erlang programs.  ... 
doi:10.1145/2543728.2543741 dblp:conf/pepm/LiTSF14 fatcat:xcsttv3pvrdibk63cun3gtrd5e

Parallelising An Erlang Multi-Agent System

Adam D. Barwell, Kevin Hammond, Aleksander Byrski, Wojciech Turek
2016 Zenodo  
We present a series of generic Program Shaping rewrite rules, and their implementation as refactorings, and demonstrate their application to an Erlang Multi-Agent System (MAS).  ...  Program Shaping is the process of transforming a sequential program in order to better enable the introduction of parallelism.  ...  In this paper we demonstrate how such an evolutionary multiagent system built in Erlang by AGH might be semi-automatically restructured and parallelised using program shaping refactoring techniques.  ... 
doi:10.5281/zenodo.581147 fatcat:4okxpx7x7bhdjpptgpskqpq7zq

Extracting Properties from Test Cases by Refactoring

Huiqing Li, Simon Thompson, Thomas Arts
2011 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops  
We report on how similar test cases in a test suite written in Erlang can be identified and then refactored into properties, giving a generalisation of the specification implicit in the test suite.  ...  A QuickCheck property is a logical statement of aspects of the behaviour of a system.  ...  Wrangler [2] is an interactive tool for refactoring Erlang programs, which not only supports a collection of standard refactorings, but also has facilities to detect and eliminate code clones and to  ... 
doi:10.1109/icstw.2011.65 dblp:conf/icst/LiTA11 fatcat:ejvqs7adpvcs3pa7acogktbxvu
« Previous Showing results 1 — 15 out of 299 results