Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Ittai Balaban is active.

Publication


Featured researches published by Ittai Balaban.


conference on object-oriented programming systems, languages, and applications | 2005

Refactoring support for class library migration

Ittai Balaban; Frank Tip; Robert M. Fuhrer

As object-oriented class libraries evolve, classes are occasionally deprecated in favor of others with roughly the same functionality. In Javas standard libraries, for example, class Hashtable has been superseded by HashMap, and Iterator is now preferred over Enumeration. Migrating client applications to use the new idioms is often desirable, but making the required changes to declarations and allocation sites can be quite labor-intensive. Moreover, migration becomes complicated---and sometimes impossible---if an application interacts with external components, if a legacy class is not completely equivalent to its replacement, or if multiple interdependent classes must be migrated simultaneously. We present an approach in which mappings between legacy classes and their replacements are specified by the programmer. Then, an analysis based on type constraints determines where declarations and allocation sites can be updated. The method was implemented in Eclipse, and evaluated on a number of Java applications. On average, our tool could migrate more than 90% of the references to legacy classes.


ACM Transactions on Programming Languages and Systems | 2011

Refactoring using type constraints

Frank Tip; Robert M. Fuhrer; Adam Kiezun; Michael D. Ernst; Ittai Balaban; Bjorn De Sutter

Type constraints express subtype relationships between the types of program expressions, for example, those relationships that are required for type correctness. Type constraints were originally proposed as a convenient framework for solving type checking and type inference problems. This paper shows how type constraints can be used as the basis for practical refactoring tools. In our approach, a set of type constraints is derived from a type-correct program P. The main insight behind our work is the fact that P constitutes just one solution to this constraint system, and that alternative solutions may exist that correspond to refactored versions of P. We show how a number of refactorings for manipulating types and class hierarchies can be expressed naturally using type constraints. Several refactorings in the standard distribution of Eclipse are based on our work.


verification model checking and abstract interpretation | 2007

Shape analysis of single-parent heaps

Ittai Balaban; Amir Pnueli; Lenore D. Zuck

We define the class of single-parent heap systems, which rely on a singly-linked heap in order to model destructive updates on tree structures. This encoding has the advantage of relying on a relatively simple theory of linked lists in order to support abstraction computation. To facilitate the application of this encoding, we provide a program transformation that, given a program operating on a multi-linked heap without sharing, transforms it into one over a single-parent heap. It is then possible to apply shape analysis by predicate and ranking abstraction as in [3]. The technique has been successfully applied on examples with trees of fixed arity (balancing of and insertion into a binary sort tree).


computer aided verification | 2005

IIV: an invisible invariant verifier

Ittai Balaban; Yi Fang; Amir Pnueli; Lenore D. Zuck

This paper describes the Invisible Invariant Verifier (IIV)-an automatic tool for the generation of inductive invariants, based on the work in [4, 1, 2, 6]. The inputs to IIV are a parameterized system and an invariance property p, and the output of IIV is “success” if it finds an inductive invariant that strengthens p and “fail” otherwise. IIV can be run from http://eeyore.cs.nyu.edu/servlets/iiv.ss.


verification model checking and abstract interpretation | 2006

Ranking abstraction of recursive programs

Ittai Balaban; Ariel Cohen; Amir Pnueli

We present a method for model-checking of safety and liveness properties over procedural programs, by combining state and ranking abstractions with procedure summarization. Our abstraction is an augmented finitary abstraction [KP00,BPZ05], meaning that a concrete procedural program is first augmented with a well founded ranking function, and then abstracted by a finitary state abstraction. This results in a procedural abstract program with strong fairness requirements which is then reduced to a finite-state fair discrete system (fds) using procedure summarization. This fds is then model checked for the property.


international colloquium on automata languages and programming | 2006

Invisible safety of distributed protocols

Ittai Balaban; Amir Pnueli; Lenore D. Zuck

The method of “Invisible Invariants” has been applied successfully to protocols that assume a “symmetric” underlying topology, be it cliques, stars, or rings. In this paper we show how the method can be applied to proving safety properties of distributed protocols running under arbitrary topologies. Many safety properties of such protocols have reachability predicates, which, at first glance, are beyond the scope of the Invisible Invariants method. To overcome this difficulty, we present a technique, called “coloring,” that allows, in many instances, to replace the second order reachability predicates by first order predicates, resulting in properties that are amenable to Invisible Invariants.We demonstrate our techniques on several distributed protocols, including a variant on Lubys Maximal Independent Set protocol, the Leader Election protocol used in the IEEE 1394 (Firewire) distributed bus protocol, and various distributed spanning tree algorithms. All examples have been tested using the symbolic model checker tlv


formal techniques for networked and distributed systems | 2005

Ranking abstraction as companion to predicate abstraction

Ittai Balaban; Amir Pnueli; Lenore D. Zuck

Predicate abstraction has become one of the most successful methodologies for proving safety properties of programs. Recently, several abstraction methodologies have been proposed for proving liveness properties. This paper studies “ranking abstraction” where a program is augmented by a nonconstraining progress monitor, and further abstracted by predicate-abstraction, to allow for automatic verification of progress properties. Unlike most liveness methodologies, the augmentation does not require a complete ranking function that is expected to decrease with each step. Rather, the inputs are component rankings from which a complete ranking function may be formed. The premise of the paper is an analogy between the methods of ranking abstraction and predicate abstraction, one ingredient of which is refinement: When predicate abstraction fails, one can refine it. When ranking abstraction fails, one must determine whether the predicate abstraction, or the ranking abstraction, need be refined. The paper presents strategies for determining which case is at hand. The other part of the analogy is that of automatically deriving deductive proof constructs: Predicate abstraction is often used to derive program invariants for proving safety properties as a boolean combination of the given predicates. Deductive proof of progress properties requires well-founded ranking functions instead of invariants. We show how to obtain concrete global ranking functions from abstract programs. We demonstrate the various methods on examples with nested loops, including a bubble sort algorithm on linked lists.


Concurrency, Compositionality, and Correctness | 2010

Proving the refuted: symbolic model checkers as proof generators

Ittai Balaban; Amir Pnueli; Lenore D. Zuck

The paper presents an automatic method to derive a deductive proof of response properties from symbolic model checking. The method is based on a new proof rule for response properties that deals directly with compassion (strong fairness). The method can be applied to infinite-state systems. In particular, model checking of response of (predicate- and ranking-) abstracted heap programs is automatically transformed into a deductive proof for the concrete heap system. All examples presented in the paper were run in tlv.


Journal of Computer and System Sciences | 2012

Verification of multi-linked heaps

Ittai Balaban; Amir Pnueli; Yaniv Sa'ar; Lenore D. Zuck

We define the class of single-parent heap systems, which rely on a singly-linked heap in order to model destructive updates on tree structures. This encoding has the advantage of relying on a relatively simple theory of linked lists in order to support abstraction computation. To facilitate the application of this encoding, we provide a program transformation that, given a program operating on a multi-linked heap without sharing, transforms it into one over a single-parent heap. It is then possible to apply shape analysis by predicate and ranking abstraction. The technique has been successfully applied on examples with lists (reversal and bubble sort) and trees with of fixed arity (balancing of, and insertion into, a binary sort tree).


International Journal of Foundations of Computer Science | 2007

MODULAR RANKING ABSTRACTION

Ittai Balaban; Amir Pnueli; Lenore D. Zuck

Collaboration


Dive into the Ittai Balaban's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Lenore D. Zuck

University of Illinois at Chicago

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Yi Fang

New York University Abu Dhabi

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Yaniv Sa'ar

Weizmann Institute of Science

View shared research outputs
Researchain Logo
Decentralizing Knowledge