首页> 外文会议>IEEE/ACM International Workshop on Refactoring >ROTOR: A Tool for Renaming Values in OCaml's Module System
【24h】

ROTOR: A Tool for Renaming Values in OCaml's Module System

机译:转子:一种在OCaml的模块系统中重命名值的工具

获取原文

摘要

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.
机译:函数式编程范例对重构提出了自己的独特挑战。特别是对于OCaml语言,其模块系统的表现力使其成为一项非常重要的任务,并且目前还没有针对OCaml语言的大规模重构的自动支持。我们介绍了ROTOR,这是一种在OCaml的模块系统中自动重命名顶级值定义的工具。为了计算重命名的效果,ROTOR依靠一个新颖的概念,我们称之为增值。这是程序中所有相关声明的集合,必须立即全部重命名。在实践中,这导致了一个依赖性的概念:在模块A中(相互)重命名函数“ foo”(取决于模块B中的重命名函数“ foo”等)。我们从两个方面描述了ROTOR设计,实现和评估的重要方面代码库:Jane Street的核心库及其依赖项,以及OCaml编译器本身。在这些现实世界的设置中,我们发现某些情况涉及令人惊讶的复杂依赖关系网络,并且PPX预处理系统的使用提出了重大挑战。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号