Tool-supported refactoring for javascrip
Asger Feldthaus, Todd Millstein, et al.
OOPSLA 2011
Reducing application size is important for software that is distributed via the internet, in order to keep download times manageable, and in the domain of embedded systems, where applications are often stored in (Read-Only or Flash) memory. This paper explores extraction techniques such as the removal of unreachable methods and redundant fields, inlining of method calls, and transformation of the class hierarchy for reducing application size. We implemented a number of extraction techniques in Jax, an application extractor for Java, and evaluated their effectiveness on a set of large Java applications. We found that, on average, the class file archives for these benchmarks were reduced to 37.5% of their original size. Modeling dynamic language features such as reflection, and extracting software distributions other than complete applications requires additional user input. We present a uniform approach for supplying this input that relies on MEL, a modular specification language. We also discuss a number of issues and challenges associated with the extraction of embedded systems applications.
Asger Feldthaus, Todd Millstein, et al.
OOPSLA 2011
Frank Tip, Peter F. Sweeney, et al.
Communications of the ACM
Nick Mitchell, Peter F. Sweeney
OOPSLA 2013
Christian Hammer, Julian Dolby, et al.
ICSE 2008