Instruct: Identify the main and secondary category of Arxiv papers based on the titles and abstracts
Query: Kayak: Safe Semantic Refactoring to Java Streams   Refactorings are structured changes to existing software that leave its
externally observable behaviour unchanged. Their intent is to improve
readability, performance or other non-behavioural properties. State-of-the-art
automatic refactoring tools are syntax-driven and, therefore, overly
conservative. In this paper we explore semantics-driven refactoring, which
enables much more sophisticated refactoring schemata. As an exemplar of this
broader idea, we present Kayak, an automatic refactoring tool that transforms
Java with external iteration over collections into code that uses Streams, a
new abstraction introduced by Java 8. Our refactoring procedure performs
semantic reasoning and search in the space of possible refactorings using
automated program synthesis. Our experimental results support the conjecture
that semantics-driven refactorings are more precise and are able to rewrite
more complex code scenarios when compared to syntax-driven refactorings.

3
The categories of this paper are: physics
18
The categories of this paper are: econ
22
The categories of this paper are: chao-dyn
4
The categories of this paper are: cond-mat
23
The categories of this paper are: solv-int
37
The categories of this paper are: supr-con
27
The categories of this paper are: comp-gas
5
The categories of this paper are: gr-qc
6
The categories of this paper are: astro-ph
16
The categories of this paper are: stat
28
The categories of this paper are: alg-geom
11
The categories of this paper are: hep-lat
8
The categories of this paper are: hep-ex
15
The categories of this paper are: nucl-ex
34
The categories of this paper are: chem-ph
29
The categories of this paper are: funct-an