Project members Results Downloads
Refactoring Erlang Programs
Introduction
The goal of this project is to develop a static source code analyser and refactoring for the Erlang functional programming language.
The project is run by the Department of Programming Languages and Compilers at the Faculty of Informatics, Eötvös Loránd University in Budapest, Hungary.
The project is supported by:
- Ericsson Hungary
- National Technology Program TECH_08_A2-SZOMIN08
- KMOP-1.1.2-08/1-2008-0002
Project members
| Horváth, Zoltán |
| Supervisor, Professor |
| Tóth, Melinda |
| Project leader, Assistant lecturer, PhD Student |
| Tejfel, Máté |
| Assistant professor |
| Király, Roland |
| Assistant lecturer |
| Kitlei, Róbert |
| Assistant lecturer |
| Bozó, István |
| PhD student |
| Horpácsi, Dániel |
| PhD student |
| Kőszegi, Judit |
| PhD student |
MSc students
Árvay, Zsófia; Felker, Péter; Fördős, Viktória; Fung, Alexandra; Hoffman, Tamás; Németh, András; Oláh, Gábor; Szabó, Richárd; Száva, Kinga
BSc students
Hosszú, Gábor; Karácsonyi, Mátyás; Kiss, Tamás
Project results
Software
Prototype source code analyser and transformer software is available for download under the conditions of Erlang Public License. The main features of RefactorErl:
- User-defined semantic and metric queries of program structures
- Dependency analysis
- Side effect analysis
- Data-flow and dynamic function call analysis
- Module and function clustering
- Interactive and scriptable Erlang shell interface
- Web interface
- CLI
- 24 different refactoring steps
- Layout preservation for unmodified source parts
- GNU Emacs/XEmacs integration
- Eclipse, Vim plugin
- Two different storage: Mnesia and C++ graph based
Publications
- 2012
- bibTejfel, M., Tóth, M., Bozó, I., Horpácsi, D., and Horváth, Z.: Improving Quality of Software Analyser and Transformer Tools using Specification Based Testing
In Selected papers of 9th Joint Conference on Mathematics and Computer Science, ANNALES Universitatis Scientiarum Budapestinensis de Rolando Eötvös Nominatae Sectio Computatorica, ISSN: 0138-9491, volume 37, pages 355–368, 2012 - bibKitlei, R.: A representation for software libraries in relation to data flow
In abstacts booklet of the 9th Joint Conference on Mathematics and Computer Science, Siófok, Hungary, February 2012 - bibTejfel, M., Tóth, M., Bozó, I., Horpácsi, D., and Horváth, Z.: Improving Quality of Software Analyser and Transformer Tools using Specification Based Testing
In abstacts booklet of the 9th Joint Conference on Mathematics and Computer Science, Siófok, Hungary, February 2012 - bibTóth, M. and Bozó, I.: Static Analysis of Complex Software Systems Implemented in Erlang
Central European Functional Programming Summer School – Fourth Summer School, CEFP 2011, Revisited Selected Lectures, Lecture Notes in Computer Science (LNCS), Vol. 7241, pp. 451-514, Springer-Verlag, ISSN: 0302-9743, 2012 - bibRefactorErl A source code analyser and transformer
Poster at Innovation Day, ELTE, Budapest, Hungary, February 2012 - 2011
- bibKarácsonyi, M. and Tóth, M.: Analysing Erlang BEAM files
In Proceedings of the 11th International Conference Informatics'2011, Roznava, Slovakia, November 2011 - bibBozó, I. and Tóth, M.: Change impact analysis
In Proceedings of the 16th Erlang User Conference 2011, Stockholm, Sweden, November 2011 - bibTóth, M., Bozó, I., Kőszegi, J., and Horváth, Z.: Static Analysis Based Support for Program Comprehension in Erlang,
In Acta Electrotechnica et Informatica, Volume 11, Number 03, October 2011. Publisher: Versita, Warsaw, ISSN 1335-8243 (print), ISSN 1338-3957 (online), pages 3-10 - bibBozó, I., Horpácsi, D., Horváth, Z., Kitlei, R., Köszegi, J., M., T., and Tóth, M.: RefactorErl - Source Code Analysis and Refactoring in Erlang
In Proceedings of the 12th Symposium on Programming Languages and Software Tools, ISBN 978-9949-23-178-2, pages 138–148, Tallin, Estonia, October 2011 - bibBozó, I. and Tóth, M.: Selecting Erlang test cases using impact analysis
In Proceedings of Symposium on Computer Languages, Implementations and Tools, Kassandra, Halkidiki, Greece, September 2011 - bibRefactorErl A source code analyser and transformer
Poster and demonstration at ESEC/FSE 2011 (The joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering), Szeged, Hungary, September 2011 - bibHorpácsi, D. and Kőszegi, J.: Static analysis of function calls in Erlang
5th IFIP TC2 Central and Eastern European Conference on Software Engineering Techniques, CEESET'11, Debrecen, Hungary, August 2011 - bibBozó, I., Tóth, M., Tejfel, M., Horpácsi, D., Kitlei, R., Kőszegi, J., and Horváth, Z.: Using impact analysis based knowledge for validating refactoring steps
In Proceedings of Knowledge Engineering: Principles and Techniques Conference, KEPT'11, Studia Universitatis Babes-Bolyai Informatica Journal, Cluj-Napoca, Romania, July 2011 - bibTóth, M., Bozó, I., and Horváth, Z.: Reverse Engineering of Complex Software Systems via Static Analysis
Lecture at 4th Central European Functional Programming School, Budapest, Hungary, June 2011 - bibHorpácsi, D.: Grammar-based data generation
Talk at the PhD Workshop of the 4th Central European Functional Programming School, Budapest, Hungary, June 2011 - bibKőszegi, J.: Reasoning about Erlang programs composed of components with known semantic properties
Talk at the PhD Workshop of the 4th Central European Functional Programming School, Budapest, Hungary, June 2011 - bibTóth, M.: Introduction to a Static Source Code Analyser and Transformer Tool for Erlang
Talk at the High Speed Network Workshop 2011, Budapest, Hungary, May 2011 - bibTóth, M., Bozó, I., Horváth, Z., Kitlei, R., Király, R., Horpácsi, D., and Kőszegi, J.: RefactorErl: a source code analyser and transformer tool
Poster at the High Speed Network Workshop 2011, Budapest, Hungary, May 2011 - bibSzabó, R.: FingerTree felhasználása refaktorálás undo/redo megvalósításához
Bachelor's Thesis, ELTE, Budapest, Hungary, 2011 - bibOláh, G.: Függvényspecifikációk generálása RefactorErl keretrendszer felhasználásával
ELTE, Budapest, Hungary, 2011 - bibKarácsonyi, M.: BEAM fájlok elemzése
National Scientific Students' Associations Conference, ELTE, Budapest, Hungary (received second prize), 2011 - bibHorpácsi, D. and Leskó, D.: Véletlenszerű programok nyelvtan alapú generálása QuickCheck használatával
National Scientific Students' Associations Conference, ELTE, Budapest, Hungary (received third prize), 2011 - bibHajós, L.: Szemantikus lekérdező nyelv Erlang programok fejlesztésének támogatásához
Master's thesis, ELTE, Budapest, Hungary, 2011 - bibHajós, L.: Szemantikus lekérdező nyelv megvalósítása Erlang programokhoz
ELTE, Budapest, Hungary, 2011 - bibFördős, V.: Webes interfész készítése a RefactorErlhez Nitrogen keretrendszer felhasználásával
Bachelor's thesis, ELTE, Budapest, Hungary, 2011 - bibCzini, G.: Refaktorálás hatása Erlang programok forráskódjának jellemzőire
Master's thesis, ELTE, Budapest, Hungary, 2011 - bibBozó, I. and Tóth, M.: Selecting Erlang test cases using impact analysis
In Proceedings of Symposium on Computer Languages, Implementations and Tools, Kassandra, Halkidiki, Greece, September 2011 - bibBozó, I., Tóth, M., Tejfel, M., Horpácsi, D., Kitlei, R., Kőszegi, J., and Horváth, Z.: Using impact analysis based knowledge for validating refactoring steps
In Proceedings of Knowledge Engineering: Principles and Techniques Conference, KEPT'11, Studia Universitatis Babes-Bolyai Informatica Journal, Cluj-Napoca, Romania, 2011 - bibTóth, M., Bozó, I., Horváth, Z., and Erdődi, A.: Static analysis and refactoring towards Erlang multicore programming
In Pre-proceedings of the Fourth Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software, PLACES'11, Saarbrücken, Germany, April 2011 - bibTóth, M., Bozó, I., Horváth, Z., Kitlei, R., Király, R., Horpácsi, D., and Kőszegi, J.: RefactorErl: a source code analyser and transformer tool
Poster at Innovation Day, ELTE, Budapest, Hungary, February 2011 - 2010
- bibHorváth, G.: Eclipse felhasználói felület Erlang refaktoráló eszközhöz
Bachelor's thesis, ELTE, Budapest, Hungary, 2010 - bibTóth, M., Bozó, I., Horváth, Z., and Erdődi, A.: Dependency Graphs for Parallelizing Erlang Programs
In 22nd Symposium on Implementation and Application of Functional Languages, Alphen aan den Rijn, The Netherlands, September 2010 - bibTóth, M., Bozó, I., and Horváth, Z.: Applying the Query Language to Support Program Comprehension
In Proceeding of International Scientific Conference on Computer Science and Engineering, ISBN 978-80-8086-164-3, pages 52–59, Stara Lubovna, Slovakia, September 2010 - bibÉrdi, G.: Intencionalitás növelése refaktoráló eszköz ELisp kódjában, Esettanulmány
Scientific Students' Associations Conference, ELTE, Budapest, Hungary, December 2010 - bibKitlei, R., Bozó, I., Kozsik, T., Tejfel, M., and Tóth, M.: Analysis of Preprocessor Constructs in Erlang
In Proceedings of the 9th ACM SIGPLAN Erlang Workshop, pages 45–55, Baltimore, USA, September 2010 - bibTóth, M. and Horváth, Z.: RefactorErl: a source code analyser and transformer tool
In Erlang User Conference 2010, Stockholm, Sweden, November 2010 - bibTóth, M.: RefactorErl: a source code analyser and transformer tool
Tutorial Workshop 2010, November 2010 - bibTóth, M., Bozó, I., Horváth, Z., Lövei, L., Tejfel, M., and Kozsik, T.: Impact analysis of Erlang programs using behaviour dependency graphs
In Central European Functional Programming Summer School, Lecture Notes in Computer Science, 2010 - bibTóth, M. and Bozó, I.: Building dependency graph for slicing Erlang programs
In 7th Conference of PhD Students in Computer Science (Paper submitted to Periodica Politechnica), Szeged, Hungary, June 2010 - bibTóth, M. and Bozó, I.: Building dependency graph for slicing Erlang programs
In 7th Conference of PhD Students in Computer Science, CSCS 2010, 2010 - bibTóth, M., Bozó, I., Horváth, Z., and Tejfel, M.: 1st order flow analysis for Erlang
In Proceedings of 8th Joint Conference on Mathematics and Computer Science, ISBN 978-963-9056-38-1, pages 403–416, Komárno, Slovakia, July 2010 - bibKirály, R. and Kitlei, R.: Application of complexity metrics in functional languages
In Proceedings of 8th Joint Conference on Mathematics and Computer Science, ISBN 978-963-9056-38-1, pages 267–282, Komárno, Slovakia, July 2010 - bibTóth, M., Bozó, I., Horváth, Z., and Tejfel, M.: nth order flow analysis for Erlang
In 8th Joint Conference on Mathematics and Computer Science, MACS 2010, 2010 - bibBozó, I., Tóth, M., and Horváth, Z.: Slicing Erlang programs
Talk at 8th International Conference on Applied Informatics, ICAI 2010, Eger, Hungary, January 2010 - bibLövei, L., Hajós, L., and Tóth, M.: Erlang Semantic Query Language
In Proceeding of 8th International Conference on Applied Informatics, ICAI 2010, ISBN 978-963-98-94-72-3, pages 165–172, Eger, Hungary, January 2010 - bibKirály, R. and Kitlei, R.: Implementing structural complexity metrics in Erlang
In Proceeding of 8th International Conference on Applied Informatics, ICAI 2010, ISBN 978-963-98-94-72-3, pages 173–180, Eger, Hungary, January 2010 - bibKirály, R. and Kitlei, R.: Implementing structural complexity metrics for Erlang
Poster on the 8th International Conference on Applied Informatics, ICAI 2010, 2010 - bibHorpácsi, D.: Testing refactoring tools by generating random Erlang modules
Master's thesis, ELTE, Budapest, Hungary, 2010 - bibKőszegi, J.: Tracing Erlang Processes
Master's thesis, ELTE, Budapest, Hungary, 2010 - bibDeckers, E.: Verifying properties of RefactorErl-transformations using QuickCheck
Master's thesis, Radboud University Nijmegen, The Netherlands and ELTE, Budapest, Hungary, 2010 - bibJumpertz, E.: Using QuickCheck and Semantic Analysis to Verify Correctness of Erlang Refactoring Transformations
Master's thesis, Radboud University Nijmegen, The Netherlands and ELTE, Budapest, Hungary, 2010 - bibDrienyovszky, D.: Quickchecking RefactorErl
ELTE, Budapest, Hungary, 2010 - bibCzini, G.: Esettanulmány alapú tesztelő a RefactorErl refaktoráló eszközhöz
ELTE, Budapest, Hungary, 2010 - bibHorpácsi, D. and Leskó, D.: Véletlenszerű programok nyelvtan alapú generálása QuickCheck használatával
Scientific Students' Associations Conference, ELTE, Budapest, Hungary, 2010 - bibHorváth, Z.: Software engineering education in cooperation with industrial partners
Model Based System Development Seminar, Nijmegen, The Netherlands, 2010 - 2009
- bibBozó, I., Horváth, Z., Király, R., Kitlei, R., Kozsik, T., Lövei, T., and Tejfel, M.: RefactorErl - Távközlési szoftverek elemzése és átalakítása
Poster at Eötvös Loránd University Open Day, November 2009 - bibHoch, C.: Testing and verifying Erlang programs: testing two refactoring tools with property based differential testing
Master's thesis, ELTE, Budapest, Hungary, 2009 - bibKitlei, R.: Reconstructing syntax in RefactorErl
PhD workshop, Central Europen Functional Programming Summer School, May 2009 - bibLövei, L., Tóth, M., and Horváth, Z.: Refactoring and Analysis with RefactorErl
Property-based Testing Tutorial Workshop 2009, Stockholm, 2009 - bibBozó, I. and Tóth, M.: Restructuring Erlang programs using function related refactorings
In Proceedings of 11th Symposium on Programming Languages and Software Tools and 7th Nordic Workshop on Model Driven Software Engineering, pages 162-176, Tampere, Finland, August 2009 - bibKitlei, R., Lövei, L., Nagy, T., Horváth, Z., and Kozsik, T.: Layout Preserving Parser for Refactoring in Erlang
Acta Electrotechnica et Informatica, volume 9, no. 3, pages 54–63, July 2009 - bibHorváth, Z., Lövei, L., Kozsik, T., Kitlei, R., Víg, A., Nagy, T., Tóth, M., and Király, R.: Modeling semantic knowledge in Erlang for refactoring
In Knowledge Engineering: Principles and Techniques, Proceedings of the International Conference on Knowledge Engineering, Principles and Techniques, KEPT 2009, volume 54(2009) Sp. Issue, Studia Universitatis Babeş-Bolyai, Series Informatica, pages 7–16, Cluj-Napoca, Romania, Jul 2009 - bibLövei, L.: Automated Module Interface Upgrade
In Proceedings of the 2009 ACM SIGPLAN Erlang Workshop, pages 11–21, Edinburgh, Scotland, Sep 2009 - bibBozó, I. and Tóth, M.: Function related refactorings in a functional programming language: Extract function, Inline function and Generalize function definition
National Scientific Students' Associations Conference, Debrecen, Hungary, received first prize, Apr 2009 - bibLövei, L., Tóth, M., Horváth, Z., Kozsik, T., Király, R., Kitlei, R., Bozó, I., Hoch, C., and Horpácsi, D.: Reengineering legacy Erlang code by refactoring
PhD workshop, Central Europen Functional Programming Summer School, May 2009 - bibLövei, L.: Refactoring and Analysis with RefactorErl
Talk at Erlang Factory London, June 2009 - bibHorváth, Z., Kozsik, T., and Lövei, L.: Software Engineering Education in Cooperation with Industrial Partners
Submitted to Teaching Mathematics and Computer Science, Debrecen, Hungary, ISSN 1589-7389, 2009 - bibHorváth, Z., Kozsik, T., and Lövei, L.: Mobility Supported Software Engineering Education in Cooperation with Industrial Partners
In 1st Computer Science Mobility Workshop, Klagenfurt, Austria, Apr 2009 - bibHorváth, Z., Kozsik, T., and Lövei, L.: Szoftverrendszerek fejlesztésének oktatása projektfeladat keretén belül (Hungarian)
In INFODIDACT 2009 Informatika Szakmódszertani Konferencia, Szombathely, Hungary, Apr 2009 - bibLövei, L., Horváth, Z., Kozsik, T., Tóth, M., and Bozó, I.: Refactoring in Erlang, a Dynamic Functional Language
Poster on ELTE Innovation Day, Feb 2009 - bibHoch, C.: Testing and verifying Erlang programs: testing two refactoring tools with property based differential testing
Master's thesis, ELTE, Budapest, Hungary, 2009 - bibHorváth, K.: Refactoring – Kód újratervezés; Szoftverelemek csoportosítása funkcionális nyelvek esetében
Master's thesis, ELTE, Budapest, Hungary, June 2009 - bibNagy, T.: Transformations related to changing the module structure of Erlang programs
Bachelor thesis, ELTE, Budapest, Hungary, June 2009 - bibKrizsai, P.: Function clustering
Bachelor thesis, ELTE, Budapest, Hungary, June 2009 - 2008
- bibKozsik, T., Csörnyei, Z., Horváth, Z., Király, R., Kitlei, R., Lövei, L., Nagy, T., Tóth, M., and Víg, A.: Use cases for refactoring in Erlang
In Central European Functional Programming School, volume 5161/2008, Lecture Notes in Computer Science, pages 250–285, 2008
abstract - bibLövei, L., Hoch, C., Köllő, H., Nagy, T., Nagyné-Víg, A., Horpácsi, D., Kitlei, R., and Király, R.: Refactoring Module Structure
In Proceedings of the 7th ACM SIGPLAN workshop on Erlang, pages 83–89, Victoria, British Columbia, Canada, Sep 2008
abstract - bibKitlei, R., Lövei, L., Tóth, M., Horváth, Z., Kozsik, T., Király, R., Bozó, I., Hoch, C., and Horpácsi, D.: Automated syntax manipulation in RefactorErl
In 14th International Erlang/OTP User Conference, Stockholm, Sweden, Nov 2008 - bibNagy, T., Horváth, Z., Lövei, L., and Víg, A.: Call graph and data flow analysis of a dynamic functional language
In Proceedings of the 6th Conference of PhD Students in Computer Science, CSCS 2008, pages 42–43, Szeged, Hungary, July 2008
abstract - bibHorváth, Z., Lövei, L., Kozsik, T., Kitlei, R., Víg, A., Nagy, T., Tóth, M., and Király, R.: Building a refactoring tool for Erlang
In Workshop on Advanced Software Development Tools and Techniques, WASDETT 2008, Paphos, Cyprus, Jul 2008
abstract - bibKitlei, R., Lövei, L., Nagy, T., and Horváth, Z.: Layout preserving, automatically generated parser for Erlang refactoring
In Proceedings of the International Scientific Conference on Computer Science and Engineering, CSE 2008 (to appear), Stará Lesná, Slovakia, Sep 2008
abstract - bibBozó, I.: Erlang Refactoring: Inline Function
Bachelor thesis, ELTE, Budapest, Hungary, 2008
thesis - bibHorpácsi, D.: Erlang module refactoring – moving functions between modules
Bachelor thesis (in Hungarian), ELTE, Budapest, Hungary, 2008
thesis - bibTóth, M.: Erlang Refactoring: Extract Function
Bachelor thesis, ELTE, Budapest, Hungary, 2008
thesis - bibHoch, C.: Using QuickCheck to test software
National Scientific Students' Associations Conference, ELTE, Budapest, Hungary, 2008
thesis - 2007
- bibLövei, L., Horváth, Z., Kozsik, T., and Király, R.: Introducing Records by Refactoring
In Proceedings of the 6th ACM SIGPLAN Erlang Workshop, pages 18–28, Freiburg, Germany, October 2007
abstract - bibKitlei, R., Lövei, L., Nagy, T., Víg, A., Horváth, Z., and Csörnyei, Z.: Generic syntactic analyser: ParsErl
In Proceedings of the 13th International Erlang/OTP User Conference, EUC 2007, Stockholm, Sweden, November 2007
paper - bibLövei, L., Horváth, Z., Kozsik, T., Víg, A., and Nagy, T.: Refactoring Erlang Programs
Periodica Polytechnica – Electrical Engineering, volume 51, no. 3, pages 75–84, 2007
abstract, slides - bibLövei, L., Horváth, Z., Kozsik, T., Király, R., Víg, A., and Nagy, T.: Refactoring in Erlang, a Dynamic Functional Language
In Proceedings of the 1st Workshop on Refactoring Tools, pages 45–46, Berlin, Germany, July 2007
extended abstract, poster - bibLövei, L., Horváth, Z., Kozsik, T., and Király, R.: Static rules for variable scoping in Erlang
In Proceedings of the 7th International Conference on Applied Informatics, ICAI 2007, pages 137–146, Eger, Hungary, January 2007
abstract, slides - bibKitlei, R., Dévai, G., Balogh, Á., and Csörnyei, Z.: Comparative analysis of refactoring and code optimization
In Proceedings of the 7th International Conference on Applied Informatics, ICAI 2007, pages 257–264, Eger, Hungary, January 2007
abstract - bibLövei, L., Horváth, Z., Kozsik, T., and Király, R.: Introducing Records by Refactoring in Erlang Programs
In Proceedings of the 10th Symposium on Programming Languages and Software Tools, SPLST 2007 (to appear), Dobogókő, Hungary, June 2007
paper - bibHorváth, Z., Lövei, L., Csörnyei, Z., Kozsik, T., Víg, A., Nagy, T., Király, R., Tóth, M., and Kitlei, R.: Refactoring Erlang Programs
In 2nd Central European Functional Programming School, CEFP 2007, Cluj-Napoca, Romania, June 2007
lecture slides - bibNagy, T. and Víg, A.: Erlang refactor tool
Master's thesis, ELTE, Budapest, Hungary, 2007
thesis - bibLövei, L.: Introducing records by refactoring in Erlang programs
Poster at High Speed Networking Workshop, 2007
poster - bibNagy, T. and Víg, A.: Erlang refactoring with relational database
Presentation for the Erlang community in the office of Erlang Training and Consulting Ltd., London, UK, February 2007
slides - 2006
- bibLi, H., Thompson, S., Lövei, L., Horváth, Z., Kozsik, T., Víg, A., and Nagy, T.: Refactoring Erlang Programs
In Proceedings of the 12th International Erlang/OTP User Conference, EUC 2006, November 2006
paper - bibNagy, T. and Víg, A.: Storing Erlang source code in database
Bachelor's thesis, ELTE, Budapest, Hungary, 2006
thesis - bibNagy, T. and Víg, A.: An Erlang refactor step: tuple function arguments
Scientific Students' Associations Conference, ELTE, Budapest, Hungary, December 2006
thesis, slides - bibLövei, L., Horváth, Z., Kozsik, T., Víg, A., and Nagy, T.: Refactoring Erlang Programs
Conference poster at High Speed Networking Workshop, May 2006
poster - bibLövei, L., Horváth, Z., Kozsik, T., Víg, A., and Nagy, T.: Erlang programok refaktorálása
Presentation at IKKK conference, November 2006
slides - bibNagy, T. and Víg, A.: Erlang refactoring with relational database
Presentation in University of Kent Functional Program Group Meeting, Canterbury, UK, December 2006
slides