The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Apr. 01, 2014
Filed:
Mar. 05, 2010
Julian Dolby, Bronx, NY (US);
Max Schaefer, St. Clement's, GB;
Manu Sridharan, Boulder, CO (US);
Frank Tip, Ridgewood, NJ (US);
Emina Torlak, Tarrytown, NY (US);
Julian Dolby, Bronx, NY (US);
Max Schaefer, St. Clement's, GB;
Manu Sridharan, Boulder, CO (US);
Frank Tip, Ridgewood, NJ (US);
Emina Torlak, Tarrytown, NY (US);
International Business Machines Corporation, Armonk, NY (US);
Abstract
Automated refactorings as implemented in modern IDEs for Java usually make no special provisions for concurrent code. Thus, refactored programs may exhibit unexpected new concurrent behaviors. We analyze the types of such behavioral changes caused by current refactoring engines and develop techniques to make them behavior-preserving, ranging from simple techniques to deal with concurrency-related language constructs to a framework that computes and tracks synchronization dependencies. By basing our development directly on the Java Memory Model we can state and prove precise correctness results about refactoring concurrent programs. We show that a broad range of refactorings are not influenced by concurrency at all, whereas other important refactorings can be made behavior-preserving for correctly synchronized programs by using our framework. Experience with a prototype implementation shows that our techniques are easy to implement and require only minimal changes to existing refactoring engines.