×

Use cases for refactoring in Erlang. (English) Zbl 1170.68414

Horváth, Zoltán (ed.) et al., Central European functional programming school. Second summer school, CEFP 2007, Cluj-Napoca, Romania, June 23–30, 2007. Revised selected lectures. Berlin: Springer (ISBN 978-3-540-88058-5/pbk). Lecture Notes in Computer Science 5161, 250-285 (2008).
Summary: Tool support for refactoring provides guarantees for the preservation of the program semantics during program transformation. This paper explains how RefactorErl, a refactoring tool for the Erlang language helps the programmer raise the quality of Erlang code or make the code suitable for further changes and improvements. Many examples illustrate the seven transformations currently implemented in RefactorErl. The paper also discusses the problems the refactor tool has to face.
For the entire collection see [Zbl 1154.68015].

MSC:

68N15 Theory of programming languages
68N18 Functional programming and lambda calculus

Software:

RefactorErl; Erlang
Full Text: DOI

References:

[1] Armstrong, J.; Virding, R.; Williams, M.; Wikstrom, C., Concurrent Programming in Erlang (1996), Englewood Cliffs: Prentice-Hall, Englewood Cliffs
[2] Barklund, J., Virding, R.: Erlang 4.7.3 Reference Manual (1999), http://www.erlang.org/download/erl_spec47.ps.gz
[3] Distel: Distributed Emacs Lisp, http://fresh.homeunix.net/ luke/distel/
[4] Diviánszky, P., Szabó-Nacsa, R., Horváth, Z.: Refactoring via database representation. In: The Sixth International Conference on Applied Informatics (ICAI 2004), Eger, Hungary, vol. 1, pp. 129-135 (2004)
[5] Eclipse - an open development platform, http://www.eclipse.org/
[6] GNU Emacs homepage, http://www.gnu.org/software/emacs/
[7] Ericsson, A.B.: Erlang Reference Manual, Version 5.6 (2007), http://www.erlang.org/download/
[8] Fowler, M.: Refactoring Home Page, http://www.refactoring.com/
[9] Fowler, M.; Beck, K.; Brant, J.; Opdyke, W.; Roberts, D., Refactoring: Improving the Design of Existing Code (1999), Reading: Addison-Wesley, Reading
[10] Fredlund, L. A.; Earle, C. B., Model checking Erlang programs: The functional approach, Proceedings of the 2006 ACM SIGPLAN workshop on Erlang, 11-19 (2006), New York: ACM Press, New York · doi:10.1145/1159789.1159793
[11] Horváth, Z., et al.: Refactoring Erlang Programs, http://plc.inf.elte.hu/erlang/
[12] Hudak, P., Peterson, J., Fasel, J.: A Gentle Introduction To Haskell, version 1.4, http://www.cs.sfu.ca/CC/SW/Haskell/hugs/tutorial-1.4-html/index.html
[13] Jiménez, M.; Lindahl, T.; Sagonas, K., A language for specifying type contracts in Erlang and its interaction with success typings, Proceedings of the 2007 ACM SIGPLAN Erlang Workshop, 11-17 (2007), New York: ACM Press, New York
[14] Li, H., Thompson, S., Lövei, L., Horváth, Z., Kozsik, T., Víg, A., Nagy, T.: Refactoring Erlang programs. In: The Proceedings of 12th International Erlang/OTP User Conference, Stockholm, Sweden (November 2006)
[15] Li, H.; Thompson, S.; Reinke, C., The Haskell Refactorer, HaRe, and its API, Electronic Notes in Theoretical Computer Science, 141, 4, 29-34 (2005) · doi:10.1016/j.entcs.2005.02.053
[16] Lövei, L.; Horváth, Z.; Kozsik, T.; Király, R., Introducing records by refactoring, Proceedings of the 2007 ACM SIGPLAN Erlang Workshop, 18-28 (2007), New York: ACM Press, New York
[17] Lövei, L., Horváth, Z., Kozsik, T., Király, R., Kitlei, R.: Static rules for variable scoping in Erlang. In: Proceedings of the 7th International Conference on Applied Informatics, vol. 2, pp. 137-145 (2008) · Zbl 1183.68197
[18] Mens, T.; Tourwe, T., A survey of software refactoring, IEEE Transactions on Software Engineering, 30, 2, 126-139 (2004) · doi:10.1109/TSE.2004.1265817
[19] MySQL AB homepage, http://www.mysql.com/
[20] Opdyke, W.F.: Refactoring Object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign, Urbana, Illinois, USA (1992)
[21] Roberts, D.; Brant, J.; Johnson, R., A refactoring tool for Smalltalk, Theory and Practice of Object Systems (TAPOS), 3, 4, 253-263 (1997) · doi:10.1002/(SICI)1096-9942(1997)3:4<253::AID-TAPO3>3.0.CO;2-T
[22] Roberts, D.B.: Practical analysis for refactoring. PhD thesis, University of Illinois at Urbana-Champaign, Urbana, Illinois, USA (1999)
[23] Szabó-Nacsa, R., Diviánszky, P., Horváth, Z.: Prototype environment for refactoring Clean programs. In: The Fourth Conference of PhD Students in Computer Science (CSCS 2004), Volume of extended abstracts, Szeged, Hungary, July 2004, p. 113 (2004), http://aszt.inf.elte.hu/ fun_ver/
[24] Trapexit. String Eval, http://wiki.trapexit.org/index.php/String_Eval
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.