Direct reasoning

  • Authors:
  • Murali Sitaraman;Gregory W. Kulczycki

  • Affiliations:
  • -;-

  • Venue:
  • Direct reasoning
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

References are indispensable to computing practice. Unlike deep copying, reference copying permits constant-time data assignment and parameter passing for all objects. Unfortunately, reference copying introduces aliasing among mutable objects and complicates software behavior by requiring developers to distinguish between references and values of objects for sound reasoning. The objective of this dissertation is to preserve the benefits of reference copying but simplify reasoning. It introduces a notion of conceptually direct reasoning, in which programmers may ignore references and treat all variables directly as object values. It explains how this notion can be applied without compromising soundness. It proposes a new approach to parameter passing that avoids both aliasing and deep copying. It explains how to segregate the few components that require aliasing from the many that do not. It contains formal specifications of components and appropriate proof rules. As a proof of concept, it applies the principles to the design of DirectJava, a prototype language that is syntactically similar to Java but facilitates conceptually direct reasoning without resorting to copying.