Mostly-Functional Behavior in Java Programs

  • Authors:
  • William C. Benton;Charles N. Fischer

  • Affiliations:
  • University of Wisconsin---Madison, WI 53706;University of Wisconsin---Madison, WI 53706

  • Venue:
  • VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
  • Year:
  • 2008
  • JPure:: a modular purity system for java

    CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a lightweight type-and-effect system for Java programs that features two major innovations over extant object-oriented effects systems: initialization effects , which are writes to an object's state while it is being constructed, and quiescing fields , which are fields that are never written after an object is constructed. We also present a novel taxonomy of degrees of method purity in object-oriented programs, which characterizes methods whose effects are confined to their receiver object. Finally, we find significant amounts of mostly-functional behavior in realistic Java programs: in the benchmarks we analyzed, between 48---53% of declared fields were identifiable as quiescing and between 24---78% of dynamic field reads were from quiescing fields.