Instruct: Identify the main and secondary category of Arxiv papers based on the titles and abstracts
Query: Decomposition Without Regret   Programming languages are embracing both functional and object-oriented
paradigms. A key difference between the two paradigms is the way of achieving
data abstraction. That is, how to organize data with associated operations.
There are important tradeoffs between functional and object-oriented
decomposition in terms of extensibility and expressiveness. Unfortunately,
programmers are usually forced to select a particular decomposition style in
the early stage of programming. Once the wrong design decision has been made,
the price for switching to the other decomposition style could be rather high
since pervasive manual refactoring is often needed. To address this issue, this
paper presents a bidirectional transformation system between functional and
object-oriented decomposition. We formalize the core of the system in the FOOD
calculus, which captures the essence of functional and object-oriented
decomposition. We prove that the transformation preserves the type and
semantics of the original program. We further implement FOOD in Scala as a
translation tool called Cook and conduct several case studies to demonstrate
the applicability and effectiveness of Cook.

31
The categories of this paper are: ao-sci
17
The categories of this paper are: q-fin
27
The categories of this paper are: comp-gas
28
The categories of this paper are: alg-geom
4
The categories of this paper are: cond-mat
10
The categories of this paper are: q-bio
30
The categories of this paper are: q-alg
34
The categories of this paper are: chem-ph
36
The categories of this paper are: cmp-lg
21
The categories of this paper are: adap-org
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
24
The categories of this paper are: dg-ga
13
The categories of this paper are: quant-ph
26
The categories of this paper are: bayes-an