ROTOR : A Tool for Renaming Values in OCaml's Module System. / Rowe, Reuben; Férée, Hugo; Thompson, Simon; Owens, Scott.

IWOR '19 Proceedings of the 3rd International Workshop on Refactoring. IEEE Press, 2019. p. 27-30.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Published

Standard

ROTOR : A Tool for Renaming Values in OCaml's Module System. / Rowe, Reuben; Férée, Hugo; Thompson, Simon; Owens, Scott.

IWOR '19 Proceedings of the 3rd International Workshop on Refactoring. IEEE Press, 2019. p. 27-30.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Harvard

Rowe, R, Férée, H, Thompson, S & Owens, S 2019, ROTOR: A Tool for Renaming Values in OCaml's Module System. in IWOR '19 Proceedings of the 3rd International Workshop on Refactoring. IEEE Press, pp. 27-30. https://doi.org/10.1109/IWoR.2019.00013

APA

Rowe, R., Férée, H., Thompson, S., & Owens, S. (2019). ROTOR: A Tool for Renaming Values in OCaml's Module System. In IWOR '19 Proceedings of the 3rd International Workshop on Refactoring (pp. 27-30). IEEE Press. https://doi.org/10.1109/IWoR.2019.00013

Vancouver

Rowe R, Férée H, Thompson S, Owens S. ROTOR: A Tool for Renaming Values in OCaml's Module System. In IWOR '19 Proceedings of the 3rd International Workshop on Refactoring. IEEE Press. 2019. p. 27-30 https://doi.org/10.1109/IWoR.2019.00013

Author

Rowe, Reuben ; Férée, Hugo ; Thompson, Simon ; Owens, Scott. / ROTOR : A Tool for Renaming Values in OCaml's Module System. IWOR '19 Proceedings of the 3rd International Workshop on Refactoring. IEEE Press, 2019. pp. 27-30

BibTeX

@inproceedings{bdb8dd89aa9a4543b42faa7096a495cf,
title = "ROTOR: A Tool for Renaming Values in OCaml's Module System",
abstract = "The functional programming paradigm presents its own unique challenges to refactoring. For the OCaml language in particular, the expressiveness of its module system makes this a highly non-trivial task and there is currently no automated support for large-scale refactoring in the OCaml language.We present Rotor, a tool for automatically renaming top-level value definitions in OCaml's module system. To compute the effect of renaming, Rotor relies on a novel concept which we call a value extension. This is a collection of related declarations in a program that must all be renamed at once. In practice, this leads to a notion of dependency: renaming a function foo in module A (mutually) depends on renaming function foo in module B etc.We describe important aspects of Rotor's design, implementation, and evaluation on two large codebases: Jane Street's core library and its dependencies, and the OCaml compiler itself. In these real-world settings we find that some cases involve a surprisingly complex network of dependencies, and that the use of the PPX preprocessor system presents significant challenges.",
author = "Reuben Rowe and Hugo F{\'e}r{\'e}e and Simon Thompson and Scott Owens",
year = "2019",
month = may,
day = "28",
doi = "10.1109/IWoR.2019.00013",
language = "English",
isbn = "978-1-7281-2271-7",
pages = "27--30",
booktitle = "IWOR '19 Proceedings of the 3rd International Workshop on Refactoring",
publisher = "IEEE Press",

}

RIS

TY - GEN

T1 - ROTOR

T2 - A Tool for Renaming Values in OCaml's Module System

AU - Rowe, Reuben

AU - Férée, Hugo

AU - Thompson, Simon

AU - Owens, Scott

PY - 2019/5/28

Y1 - 2019/5/28

N2 - The functional programming paradigm presents its own unique challenges to refactoring. For the OCaml language in particular, the expressiveness of its module system makes this a highly non-trivial task and there is currently no automated support for large-scale refactoring in the OCaml language.We present Rotor, a tool for automatically renaming top-level value definitions in OCaml's module system. To compute the effect of renaming, Rotor relies on a novel concept which we call a value extension. This is a collection of related declarations in a program that must all be renamed at once. In practice, this leads to a notion of dependency: renaming a function foo in module A (mutually) depends on renaming function foo in module B etc.We describe important aspects of Rotor's design, implementation, and evaluation on two large codebases: Jane Street's core library and its dependencies, and the OCaml compiler itself. In these real-world settings we find that some cases involve a surprisingly complex network of dependencies, and that the use of the PPX preprocessor system presents significant challenges.

AB - The functional programming paradigm presents its own unique challenges to refactoring. For the OCaml language in particular, the expressiveness of its module system makes this a highly non-trivial task and there is currently no automated support for large-scale refactoring in the OCaml language.We present Rotor, a tool for automatically renaming top-level value definitions in OCaml's module system. To compute the effect of renaming, Rotor relies on a novel concept which we call a value extension. This is a collection of related declarations in a program that must all be renamed at once. In practice, this leads to a notion of dependency: renaming a function foo in module A (mutually) depends on renaming function foo in module B etc.We describe important aspects of Rotor's design, implementation, and evaluation on two large codebases: Jane Street's core library and its dependencies, and the OCaml compiler itself. In these real-world settings we find that some cases involve a surprisingly complex network of dependencies, and that the use of the PPX preprocessor system presents significant challenges.

U2 - 10.1109/IWoR.2019.00013

DO - 10.1109/IWoR.2019.00013

M3 - Conference contribution

SN - 978-1-7281-2271-7

SP - 27

EP - 30

BT - IWOR '19 Proceedings of the 3rd International Workshop on Refactoring

PB - IEEE Press

ER -