This HTML5 document contains 31 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

Namespace Prefixes

PrefixIRI
dctermshttp://purl.org/dc/terms/
n2https://kar.kent.ac.uk/id/eprint/
wdrshttp://www.w3.org/2007/05/powder-s#
n7http://purl.org/ontology/bibo/status/
dchttp://purl.org/dc/elements/1.1/
n22https://kar.kent.ac.uk/id/subject/
rdfshttp://www.w3.org/2000/01/rdf-schema#
n20https://demo.openlinksw.com/about/id/entity/https/raw.githubusercontent.com/annajordanous/CO644Files/main/
n16doi:10.1109/
n3http://eprints.org/ontology/
n10https://kar.kent.ac.uk/id/event/
n9https://kar.kent.ac.uk/80338/
bibohttp://purl.org/ontology/bibo/
n21https://kar.kent.ac.uk/id/publication/
n19https://kar.kent.ac.uk/id/org/
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
n11https://kar.kent.ac.uk/id/eprint/80338#
owlhttp://www.w3.org/2002/07/owl#
n4https://kar.kent.ac.uk/id/document/
n18https://kar.kent.ac.uk/id/
xsdhhttp://www.w3.org/2001/XMLSchema#
n14https://demo.openlinksw.com/about/id/entity/https/www.cs.kent.ac.uk/people/staff/akj22/materials/CO644/
n17https://kar.kent.ac.uk/id/person/

Statements

Subject Item
n2:80338
rdf:type
bibo:AcademicArticle bibo:Article n3:EPrint n3:ConferenceItemEPrint
rdfs:seeAlso
n9:
owl:sameAs
n16:IWoR.2019.00013
n3:hasAccepted
n4:3203507
n3:hasDocument
n4:3203507 n4:3203512 n4:3203519 n4:3203520 n4:3203521 n4:3203522
dc:hasVersion
n4:3203507
dcterms:title
ROTOR : A Tool for Renaming Values in OCaml's Module System
wdrs:describedby
n14:export_kar_RDFN3.n3 n20:export_kar_RDFN3.n3
dcterms:date
2019-05-28
dcterms:creator
n17:ext-r.n.s.rowe@kent.ac.uk n17:ext-h.feree@kent.ac.uk n17:ext-s.a.owens@kent.ac.uk n17:ext-s.j.thompson@kent.ac.uk
bibo:status
n7:peerReviewed n7:published
dcterms:publisher
n19:ext-c397f17dedea40d29edca0f194994098
bibo: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.
dcterms:isPartOf
n18:repository n21:ext-2a36c5210e27b48cf6ea9c525fb7eca3
dcterms:subject
n22:QA76
bibo:authorList
n11:authors
bibo:presentedAt
n10:ext-90ea7e371a0273eef8ed12ff45656910