Flow Java: Declarative Concurrency for Java - CORE CORE 🇺🇦 make better metadata, not war Services Services overviewExplore all CORE services Access to raw data API Dataset FastSync Content discovery Recommender Discovery Managing content Repository dashboard Packages Repository edition About About us Our mission Team Blog FAQs Contact us thesis Flow Java: Declarative Concurrency for Java Authors Frej Drejhammar Publication date March 3, 2005 Publisher Abstract This thesis presents the design, implementation, and evaluation of Flow Java, a programming language for the implementation of concurrent programs. Flow Java adds powerful programming abstractions for automatic synchronization of concurrent programs to Java. The abstractions added are single assignment variables (logic variables) and futures (read-only views of logic variables). The added abstractions conservatively extend Java with respect to types, parameter passing, and concurrency. Futures support secure concurrent abstractions and are essential for seamless integration of single assignment variables into Java. These abstractions allow for simple and concise implementation of high-level concurrent programming abstractions. Flow Java is implemented as a moderate extension to the GNU gcj/libjava Java compiler and runtime environment. The extension is not specific to a particular implementation, it could easily be incorporated into other Java implementations. The thesis presents three implementation strategies for single assignment variables. One strategy uses forwarding and dereferencing while the two others are variants of Taylor's scheme. Taylor's scheme represents logic variables as a circular list. The thesis presents a new adaptation of Taylor's scheme to a concurrent language using operating system threads. The Flow Java system is evaluated using standard Java benchmarks. Evaluation shows that in most cases the overhead incurred by the extensions is between 10% and 50%. For some pathological cases the runtime increases by up to 150%. Concurrent programs making use of Flow Java's automatic synchronization, generally perform as good as corresponding Java programs. In some cases Flow Java programs outperform Java programs by as much as 33% Thesis NonPeerReviewed Similar works Full text Swedish Institute of Computer Science Publications DatabaseProvided a free PDF oai:generic.eprints.org:162/core362 Last time updated on 7/10/2013View original full text link This paper was published in Swedish Institute of Computer Science Publications Database. Having an issue? Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request. Report CORE is not-for-profit service delivered by the Open University and Jisc. Product Services Data providers Communities Terms Organisation About us Mission Team Blog Support FAQs Contact us Writing about CORE? Discover our research outputs and cite our work. COREAccessabilityCookiesPrivacy