Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A case for source-level transformations in MATLAB
Proceedings of the 2nd conference on Domain-specific languages
Refactorings for Fortran and high-performance computing
Proceedings of the second international workshop on Software engineering for high performance computing system applications
Refactoring with wrangler, updated: data and process refactorings, and integration with eclipse
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Clone detection and removal for Erlang/OTP within a refactoring environment
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Refactoring and the evolution of Fortran
SECSE '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering
Automatic refactoring of Erlang programs
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Regrowing a language: refactoring tools allow programming languages to evolve
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Making Program Refactoring Safer
IEEE Software
Specifying and implementing refactorings
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Refactoring Support for Modularity Maintenance in Erlang
SCAM '10 Proceedings of the 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation
Refactoring using type constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Staged static techniques to efficiently implement array copy semantics in a MATLAB JIT compiler
CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
Automated refactorings for high performance Fortran programmes
International Journal of High Performance Systems Architecture
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Tool-supported refactoring for JavaScript
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A domain-specific language for scripting refactorings in erlang
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Matlab is a very popular dynamic "scripting" language for numerical computations used by scientists, engineers and students world-wide. Matlab programs are often developed incrementally using a mixture of Matlab scripts and functions, and frequently build upon existing code which may use outdated features. This results in programs that could benefit from refactoring, especially if the code will be reused and/or distributed. Despite the need for refactoring, there appear to be no Matlab refactoring tools available. Furthermore, correct refactoring of Matlab is quite challenging because of its non-standard rules for binding identifiers. Even simple refactorings are non-trivial. This paper presents the important challenges of refactoring Matlab along with automated techniques to handle a collection of refactorings for Matlab functions and scripts including: converting scripts to functions, extracting functions, and converting dynamic function calls to static ones. The refactorings have been implemented using the McLab compiler framework, and an evaluation is given on a large set of Matlab benchmarks which demonstrates the effectiveness of our approach.