Extending Erlang by utilising RefactorErl

In this paper, we present the idea of utilising a refactoring tool for implementing extensions to a programming language. We elaborate the correspondence between the main components of the compiler and the refactoring tool, and examine how analysis and transformation features of the tool can be exploited for turning its refactoring framework into a translation framework. The presented method allows one, for instance, to make the Erlang language supportive for embedding domain specific languages as well as to make its functions portable.

[1]  Róbert KITLEI,et al.  LAYOUT PRESERVING PARSER FOR REFACTORING IN ERLANG , 2009 .

[2]  Steffen Priebe,et al.  Preprocessing eden with template haskell , 2005, GPCE'05.

[3]  Gábor Fehér,et al.  ECT: an object-oriented extension to Erlang , 2009, Erlang Workshop.

[4]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[5]  Aruna Raja,et al.  Domain Specific Languages , 2010 .

[6]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[7]  Gerald Baumgartner,et al.  Implementing signatures for C++ , 1994, TOPL.

[8]  Zoltán Horváth,et al.  Static Analysis Based Support for Program Comprehension in Erlang , 2011 .

[9]  Róbert Kitlei,et al.  Analysis of preprocessor constructs in Erlang , 2010, Erlang '10.

[10]  Niklas Broberg,et al.  Regular expression patterns , 2004, ICFP '04.

[11]  Christian Heinlein,et al.  MOST-flexiPL: modular, statically typed, flexibly extensible programming language , 2012, Onward! 2012.

[12]  Jonathan Bachrach,et al.  The Java syntactic extender (JSE) , 2001, OOPSLA '01.

[13]  Jeffrey G. Gray,et al.  Domain-specific software engineering , 2010, FoSER '10.

[14]  Sebastian Erdweg,et al.  SugarJ: library-based syntactic language extensibility , 2011, OOPSLA '11.

[15]  Michael R. Clarkson,et al.  Polyglot: An Extensible Compiler Framework for Java , 2003, CC.

[16]  Huiqing Li,et al.  Let's make refactoring tools user-extensible! , 2012, WRT '12.

[17]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[18]  Christian Heinlein C+++: User-Defined Operator Symbols in C++ , 2004, GI Jahrestagung.

[19]  Dániel Horpácsi,et al.  Static analysis of function calls in Erlang , 2013, e Informatica Softw. Eng. J..

[20]  Sebastian Erdweg,et al.  Layout-sensitive language extensibility with SugarHaskell , 2013, Haskell 2013.

[21]  László Lövei,et al.  Erlang Semantic Query Language , 2010 .

[22]  Melinda Tóth,et al.  Static Analysis of Complex Software Systems Implemented in Erlang , 2011, CEFP.

[23]  Lars-Åke Fredlund,et al.  McErlang: a model checker for a distributed functional programming language , 2007, ICFP '07.

[24]  Sebastian Erdweg,et al.  Layout-sensitive language extensibility with SugarHaskell , 2012, Haskell '12.

[25]  Christian Heinlein,et al.  Concept and implementation of C+++, an extension of C++ to support user-defined operator symbols and control structures , 2005 .