作者: Deepak Goyal , Robert Paige
关键词: Programming language 、 Cloning (programming) 、 Theoretical computer science 、 Recursion 、 Abstract interpretation 、 Compiler 、 Functional programming 、 Semantics (computer science) 、 Correctness 、 Operational semantics 、 Computer science 、 Java 、 Copying 、 Imperative programming
摘要: We consider the well-known problem of avoiding unnecessary costly copying that arises in languages with copy/value semantics and large aggregate structures such as arrays, sets, or files. The origins many recent studies focusing on copies flat arrays functional may be traced back to SETL copy optimization [Schwartz 75]. is hard, progress slow, but a successful solution crucial achieving pointer-free style programming envisioned by [Hoare give new uses dynamic reference counts lazy implement updates efficiently an imperative language arbitrarily nested finite sets maps (which can easily model records other datatypes). Big step operational abstract interpretations are used prove soundness analysis correctness transformation. An efficient algorithm presented. approach supported realistic empirical evidence. Our anticipates introduction polymorphic into JAVA. It also provide strategy for implementing object cloning Java assigment C++. illustrate how our methods might improve [Wand Clinger 98] avoid first-order recursion equations.