skip to main content
10.1145/2328876.2328885acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
short-paper

Refactoring tools for dynamic languages

Published: 01 June 2012 Publication History

Abstract

Dynamic languages play an increasingly prominent role in modern software development. They are used in domains as diverse as web programming and scientific computing, for developing simple scripts as well as large applications.
Tool-supported refactoring for these languages can bring important benefits to programmers. First, manual refactoring tends to be error-prone in dynamic languages since they impose very little static structure; hence, erroneous refactorings often cannot be detected until runtime. A tool can use static program analysis to check the soundness of a proposed refactoring, thus mitigating this problem. Second, dynamic languages tend to lack constructs for modularisation and encapsulation, which can be an obstacle to writing maintainable software. In many cases, such constructs can be emulated using other language features, but refactoring a program to make use of such patterns is often non-trivial and could benefit from tool support. Third, refactoring tools can be useful for adapting programs to use high-level features, thus supporting script to program evolution.
However, specifying and implementing refactorings for dynamic languages is a challenging endeavour. We highlight some of the major issues in this area, and discuss recent progress towards solving them.

References

[1]
D. Crockford. JavaScript: The Good Parts. O'Reilly, 2008.
[2]
A. Feldthaus, T. D. Millstein, A. Møller, M. Schäfer, and F. Tip. Tool-supported Refactoring for JavaScript. In OOPSLA, pages 119--138, 2011.
[3]
S. Guarnieri and V. B. Livshits. Gatekeeper: Mostly Static Enforcement of Security and Reliability Policies for JavaScript Code. In USENIX Security Symposium, 2009.
[4]
S. H. Jensen, A. Møller, and P. Thiemann. Type Analysis for JavaScript. In SAS, 2009.
[5]
S. H. Jensen, P. A. Jonsson, and A. Møller. Remedying the Eval that Men Do. In ISSTA, 2012.
[6]
S. Radpour and L. Hendren. Refactoring MATLAB. Technical Report No. 2011-2, McGill University, October 2011.
[7]
G. Richards, S. Lebresne, B. Burg, and J. Vitek. An Analysis of the Dynamic Behavior of JavaScript Programs. In PLDI, pages 1--12, 2010.
[8]
G. Richards, C. Hammer, B. Burg, and J. Vitek. The Eval That Men Do. In ECOOP, pages 52--78, 2011.
[9]
D. Roberts, J. Brant, and R. E. Johnson. A Refactoring Tool for Smalltalk. TAPOS, 3(4):253--263, 1997.
[10]
M. Sridharan, J. Dolby, S. Chandra, M. Schäfer, and F. Tip. Correlation Tracking for Points-To Analysis of JavaScript. In ECOOP, 2012. To Appear.
[11]
W3Techs. Usage Statistics and Market Share of PHP for Websites. http://w3techs.com, 2012.
[12]
T. Wrigstad, P. Eugster, J. Field, N. Nystrom, and J. Vitek. Software Hardening: A Research Agenda. In STOP, pages 58--70, 2009.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
WRT '12: Proceedings of the Fifth Workshop on Refactoring Tools
June 2012
69 pages
ISBN:9781450315005
DOI:10.1145/2328876
  • Conference Chair:
  • Peter Sommerlad
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • ICSE: International Conference on Software Engineering
  • SWEN: SWEN - Software Engineering Network

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic languages
  2. refactoring
  3. refactoring tools
  4. static analysis

Qualifiers

  • Short-paper

Conference

WRT '12
Sponsor:
  • ICSE
  • SWEN
WRT '12: Fifth Workshop on Refactoring Tools 2012
June 1, 2012
Rapperswil, Switzerland

Acceptance Rates

Overall Acceptance Rate 9 of 9 submissions, 100%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media