EDBT 2026 Demo / reviewers in the wild / expert
Yoav Zibin
dblp:35/5726
· DBLP profile ↗
15ranked-venue papers
9as first author
0since 2021 · last 2012
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 12 · 8 first-authorTheory of computation · 2
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
10 papers |
Programming languages and type systems · 76% Debugging and program repair · 15% Compilers and program optimization · 7% | |
| Network and information security
1 paper |
Systems and software security · 100% | |
| Theoretical computer science
2 papers |
Algorithms and data structures · 100% |
Topics — the 17 heaviest of 20, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › method dispatch
dynamic dispatch |
0.2 | 3 | 2007 | Efficient dynamic dispatching with type slicing · ACM Trans. Program. Lang. Syst. 2007 Efficient subtyping tests with PQ-encoding · ACM Trans. Program. Lang. Syst. 2005 Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching · OOPSLA 2002 |
Programming languages and type systems › type systems
subtyping |
0.1 | 3 | 2005 | Efficient subtyping tests with PQ-encoding · ACM Trans. Program. Lang. Syst. 2005 Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching · OOPSLA 2002 Efficient Subtyping Tests with PQ-Encoding · OOPSLA 2001 |
Programming languages and type systems
method dispatch |
0.1 | 2 | 2007 | Efficient dynamic dispatching with type slicing · ACM Trans. Program. Lang. Syst. 2007 Incremental algorithms for dispatching in dynamically typed languages · POPL 2003 |
Programming languages and type systems › language design
immutability |
0.1 | 1 | 2010 | Ownership and immutability in generic Java · OOPSLA 2010 |
Programming languages and type systems › type systems
ownership types |
0.1 | 1 | 2010 | Ownership and immutability in generic Java · OOPSLA 2010 |
Systems and software security
vulnerability discovery |
0.1 | 1 | 2009 | Automatically patching errors in deployed software · SOSP 2009 |
Debugging and program repair
automated program repair |
0.1 | 1 | 2009 | Automatically patching errors in deployed software · SOSP 2009 |
Debugging and program repair › automated program repair
patch generation |
0.1 | 1 | 2009 | Automatically patching errors in deployed software · SOSP 2009 |
Compilers and program optimization › memory optimization › data layout optimization
object layout |
0.1 | 2 | 2008 | Two-dimensional bidirectional object layout · ACM Trans. Program. Lang. Syst. 2008 Efficient Subtyping Tests with PQ-Encoding · OOPSLA 2001 |
Programming languages and type systems
type systems |
0.1 | 1 | 2007 | Object and reference immutability using java generics · ESEC/SIGSOFT FSE 2007 |
Programming languages and type systems
encoding |
0.1 | 1 | 2005 | Efficient subtyping tests with PQ-encoding · ACM Trans. Program. Lang. Syst. 2005 |
Programming languages and type systems › object-oriented programming
multiple inheritance |
0.1 | 2 | 2003 | Incremental algorithms for dispatching in dynamically typed languages · POPL 2003 Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching · OOPSLA 2002 |
Programming languages and type systems › type systems
dynamic typing |
0.0 | 1 | 2003 | Incremental algorithms for dispatching in dynamically typed languages · POPL 2003 |
Programming languages and type systems › type theory
type isomorphism |
0.0 | 1 | 2003 | Efficient algorithms for isomorphisms of simple types · POPL 2003 |
Algorithms and data structures › data structure design
compressed data structures |
0.0 | 1 | 2003 | Incremental algorithms for dispatching in dynamically typed languages · POPL 2003 |
Programming languages and type systems › method dispatch
multiple dispatch |
0.0 | 1 | 2002 | Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching · OOPSLA 2002 |
Programming languages and type systems › type systems › polymorphism
generics |
0.0 | 1 | 2007 | Object and reference immutability using java generics · ESEC/SIGSOFT FSE 2007 |
Methods — techniques the papers use, named apart from their topics
static type system · 0.1soundness proof · 0.1featherweight java · 0.1type slicing · 0.1PQ-trees · 0.1whole-program analysis · 0.1type hierarchy analysis · 0.1type system formalization · 0.1type soundness proof · 0.1type erasure · 0.1theoretical analysis · 0.0incremental algorithm · 0.0complexity analysis · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2012 | Object Initialization in X10
Yoav Zibin, David Cunningham, Igor Peshansky, Vijay A. Saraswat |
ECOOP | 1 |
| 2010 | Ownership and immutability in generic JavaabstractThe Java language lacks the important notions of ownership (an object owns its representation to prevent unwanted aliasing) and immutability (the division into mutable, immutable, and readonly data and references). Programmers are prone to design errors, such as representation exposure or violation of immutability contracts. This paper presents Ownership Immutability Generic Java (OIGJ), a backward-compatible purely-static language extension supporting ownership and immutability. We formally defined a core calculus for OIGJ, based on Featherweight Java, and proved it sound. We also implemented OIGJ and performed case studies on 33,000 lines of code. Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, Michael D. Ernst |
OOPSLA | 1 |
| 2009 | Automatically patching errors in deployed softwareabstractWe present ClearView, a system for automatically patching errors in deployed software. ClearView works on stripped Windows x86 binaries without any need for source code, debugging information, or other external information, and without human intervention. Jeff H. Perkins, Sunghun Kim 0001, Samuel Larsen, Saman P. Amarasinghe, Jonathan Bachrach, Michael Carbin, Carlos Pacheco, Frank Sherwood, Stelios Sidiroglou-Douskos, Gregory T. Sullivan, Weng-Fai Wong, Yoav Zibin, Michael D. Ernst, Martin C. Rinard |
SOSP | 12 |
| 2008 | Two-dimensional bidirectional object layoutabstractObject layout schemes used in C++ and other languages rely on (sometimes numerous) compiler generated fields. We describe a language-independent object layout scheme, which is space optimal, that is, objects are contiguous, and contain no compiler generated fields other than a single type identifier. As in C++ and other multiple inheritance languages such as CECIL and DYLAN, the new scheme sometimes requires extra levels of indirection to access some of the fields. Using a data set of 28 hierarchies, totaling almost 50,000 types, we show that this scheme improves field access efficiency over standard implementations, and competes favorably with (the non-space-optimal) highly optimized C++ specific implementations. The benchmark includes an analytical model for computing the frequency of indirections in a sequence of field access operations. Our layout scheme relies on whole-program analysis, which requires about 10 microseconds per type on a contemporary architecture (Pentium III, 900Mhz, 256MB machine), even in very large hierarchies. We also present a layout scheme for separate compilation using the user-annotation of virtual inheritance edge that is used in C++. Joseph Gil, William W. Pugh, Grant E. Weddell, Yoav Zibin |
ACM Trans. Program. Lang. Syst. | 4 |
| 2007 | Object and reference immutability using java genericsabstractA compiler-checked immutability guarantee provides useful documentation, facilitates reasoning, and enables optimizations. This paper presents Immutability Generic Java (IGJ), a novel language extension that expresses immutability without changing Java's syntax by building upon Java's generics and annotation mechanisms. In IGJ, each class has one additional type parameter that is Immutable, Mutable, or ReadOnly. IGJ guarantees both reference immutability (only mutable references can mutate an object) and object immutability (an immutable reference points to an immutable object). IGJ is the first proposal for enforcing object immutability within Java's syntax and type system, and its reference immutability is more expressive than previous work. IGJ also permits covariant changes of type parameters in a type-safe manner, e.g., a readonly list of integers is a subtype of a readonly list of numbers. IGJ extends Java's type system with a few simple rules. We formalize this type system and prove it sound. Our IGJ compiler works by type-erasure and generates byte-code that can be executed on any JVM without runtime penalty. Yoav Zibin, Alex Potanin, Mahmood Ali, Shay Artzi, Adam Kiezun, Michael D. Ernst |
ESEC/SIGSOFT FSE | 1 |
| 2007 | Randomised algorithms for isomorphisms of simple typesabstractWe give the first linear time (randomised) algorithm for thefirst order isomorphism problem, that is, the isomorphism of non-recursive types involving product- and function-type constructors, under the axioms of commutativity and associativity of products, currying and distributivity of functions over products. This problem can also be thought of as the problem of formal equality-testing of multi-variate expressions involving only multiplications and exponentiation. Previous work gave a deterministicO(nlog2n) time andO(n) space algorithm for the problem (nbeing the input size). Our specific contribution includes two randomised algorithms for the problem: (i) anO(n) timeMonte Carloalgorithm (that is, with a small probability it may decide erroneously that the two types are isomorphic), and (ii) anO(nlogn) expected time andO(n) spaceLas Vegasalgorithm (that is, with a small probability it may execute long). The algorithms rely on a preprocessing stage, which computes the sequence of the firstnprimes inO(nlogn/log logn) time and space. Joseph Gil, Yoav Zibin |
Math. Struct. Comput. Sci. | 2 |
| 2007 | Efficient dynamic dispatching with type slicingabstractA fundamental problem in the implementation of object-oriented languages is that of a frugal implementation of dynamic dispatching, that is, a small footprint data structure that supports quick response to runtime dispatching queries of the following format: which method should be executed in response to a certain message sent to a given object. Previous theoretical algorithms for this problem tend to be impractical due to their conceptual complexity and large hidden constants. In contrast, successful practical heuristics lack theoretical support. The contribution of this article is in a novel type slicing technique, which results in two dispatching schemes: TS and CT d . We make the case for these schemes both practically and theoretically. The empirical findings on a corpus of 35 hierarchies totaling some 64 thousand types from eight different languages, demonstrate improvement over previous results in terms of the space required for the representation, and the time required for computing it. The theoretical analysis is with respect to ι, the best possible compression factor of the dispatching matrix. The results are expressed as a function of a parameter κ, which can be thought of as a metric of the complexity of the topology of a multiple inheritance hierarchy. In single inheritance hierarchies κ = 1, but although κ can be in the order of the size of the hierarchy, it is typically a small constant in actual use of inheritance; in our corpus, the median value of κ is 5, while its average is 6.4. The TS scheme generalizes the famous interval containment technique to multiple inheritance. TS achieves a compression factor of ι/κ, that is, our generalization comes with an increase to the space requirement by a small factor of κ. The pay is in the dispatching time, which is no longer constant as in a naive matrix implementation, but logarithmic in the number of different method implementations. In practice, dispatching uses one indirect branch and, on average, only 2.5 binary branches. The CT schemes are a sequence of algorithms CT 1 , CT 2 , CT 3 , …, where CT d uses d memory dereferencing operations during dispatch, and achieves a compression factor of 1/ d ι 1−1/ d in a single inheritance setting. A generalization of these algorithms to a multiple inheritance setting, increases the space by a factor of (2κ) 1−1/ d . This trade-off represents the first bounds on the compression ratio of constant-time dispatching algorithms. We also present an incremental variant of the CT d suited for languages such as Java. Joseph Gil, Yoav Zibin |
ACM Trans. Program. Lang. Syst. | 2 |
| 2005 | Efficient algorithms for isomorphisms of simple typesabstractThe first-order isomorphism problem is to decide whether two non-recursive types using product- and function-type constructors are isomorphic under the axioms of commutative and associative products, and currying and distributivity of functions over products. We show that this problem can be solved in time of the best previous algorithm for this problem. Joseph Gil, Yoav Zibin |
Math. Struct. Comput. Sci. | 2 |
| 2005 | Efficient subtyping tests with PQ-encodingabstractGiven a type hierarchy, a subtyping test determines whether one type is a direct or indirect descendant of another type. Such tests are a frequent operation during the execution of object-oriented programs. The implementation challenge is in a space-efficient encoding of the type hierarchy that simultaneously permits efficient subtyping tests. We present a new scheme for encoding multiple- and single-inheritance hierarchies, which, in the standard benchmark hierarchies, reduces the footprint of all previously published schemes. Our scheme is called PQ-encoding (PQE) after PQ-trees , a data structure previously used in graph theory for finding the orderings that satisfy a collection of constraints. In particular, we show that in the traditional object layout model, the extra memory requirements for single-inheritance hierarchies is zero. In the PQE subtyping, tests are constant time, and use only two comparisons. The encoding creation time of PQE also compares favorably with previous results. It is less than 1 s on all standard benchmarks on a contemporary architecture, while the average time for processing a type is less than 1 ms. However, PQE is not an incremental algorithm. Other than PQ-trees, PQE employs several novel optimization techniques. These techniques are applicable also in improving the performance of other, previously published, encoding schemes. Joseph Gil, Yoav Zibin |
ACM Trans. Program. Lang. Syst. | 2 |
| 2003 | Two-Dimensional Bi-directional Object Layout
Yoav Zibin, Joseph Gil |
ECOOP | 1 |
| 2003 | Incremental algorithms for dispatching in dynamically typed languagesabstractA fundamental problem in the implementation of object-oriented languages is that of a frugal dispatching data structure, i.e., support for quick response to dispatching queries combined with compact representation of the type hierarchy and the method families. Previous theoretical algorithms tend to be impractical due to their complexity and large hidden constant. In contrast, successful practical heuristics, including Vitek and Horspool's compact dispatch tables (CT) [16] designed for dynamically typed languages, lack theoretical support. In subjecting CT to theoretical analysis, we are not only able to improve and generalize it, but also provide the first non-trivial bounds on the performance of such a heuristic.Let n,ml denote the total number of types, messages, and different method implementations, respectively. Then, the dispatching matrix, whose size isnm, can be compressed by a factor of at most ι ≡ (nm)/l. Our main variant to CT achieves a compression factor of ½ √ι. More generally, we describe a sequence of algorithms CT1, CT2, CT3,..., where CTd achieves compression by a factor of (at least) 1overdι1—1/d, while using d memory dereferencing operations during dispatch. This tradeoff represents the first bounds on the compression ratio of constant-time dispatching algorithms.A generalization of these algorithms to a multiple-inheritance setting, increases the space by a factor of κ1-1/d, where κ is a metric of the complexity of the topology of the inheritance hierarchy, which (as indicated by our measurements) is typically small. The most important generalization is an incremental variant of the CTd scheme for a single-inheritance setting. This variant uses at most twice the space of CTd, and its time of inserting a new type into the hierarchy is optimal. We therefore obtain algorithms for efficient management of dispatching in dynamic-typing, dynamic-loading languages, such as Smalltalk and even the Java invokeinterface instruction. Yoav Zibin, Joseph Gil |
POPL | 1 |
| 2003 | Efficient algorithms for isomorphisms of simple typesabstractThe first order isomorphism problem is to decide whether two nonrecursive types using product- and function-type constructors, are isomorphic under the axioms of commutative and associative products, and currying and distributivity of functions over products. We show that this problem can be solved in 2 is the input size. This result improves upon the space bounds of the best previous algorithm. We also describe an time algorithm for the linear isomorphism problem, which does not include the distributive axiom, whereby improving upon the time of the best previous algorithm for this problem. Yoav Zibin, Joseph Gil, Jeffrey Considine |
POPL | 1 |
| 2003 | Condition-Based Consensus in Synchronous Systems
Yoav Zibin |
DISC | 1 |
| 2002 | Fast algorithm for creating space efficient dispatching tables with application to multi-dispatchingabstractThe dispatching problem can be solved very efficiently in the single-inheritance~(SI) setting. In this paper we show how to extend one such solution to the multiple-inheritance~(MI) setting. This generalization comes with an increase to the space requirement by a small factor of κ This factor can be thought of as a metric of the complexity of the topology of the inheritance hierarchy.On a data set of~35 hierarchies totaling some~64 thousand types, our dispatching data structure, based on a novel type slicing technique, exhibits very significant improvements over previous dispatching techniques, not only in terms of the time for creating the underlying data structure, but also in terms of total space used.The cost is in the dispatching time, which is no longer constant, but doubly logarithmic in the number of types. Conversely, by using a simple binary search, dispatching time is logarithmic in the number of different implementations. In practice dispatching uses one indirect branch and, on average, only~2.5 binary branches.Our results also have applications to the space-efficient implementation of the more general problem of dispatching multi-methods.A by-product of our type slicing technique is an incremental algorithm for constant-time subtyping tests with favorable memory requirements. (The incremental version of the subtyping problem is to maintain the subtyping data structure in presence of additions of types to the inheritance hierarchy.) Yoav Zibin, Joseph Gil |
OOPSLA | 1 |
| 2001 | Efficient Subtyping Tests with PQ-EncodingabstractSubtyping tests, i.e., determining whether one type is a subtype of another, are a frequent operation during the execution of objectoriented programs. The challenge is in encoding the hierarchy in a small space, while simultaneously making sure that subtyping tests have efficient implementation. We present a new scheme for encoding multiple and single inheritance hierarchies, which, in the standardized hierarchies, reduces the footprint of all previously published schemes. The scheme is called PQ-encoding after PQ-trees, a data structure previously used in graph theory for finding the orderings that satisfy a collection of constraints. In particular, we show that in the traditional object layout model, the extra memory requirements for single inheritance hierarchies is zero. In the PQ-encoding subtyping tests are constant time, and use only two comparisons. Other than PQ-trees, PQ-encoding uses several novel optimization techniques. These techniques are applicable also in improving the performance of other, previously published, encoding schemes. Yoav Zibin, Joseph Gil |
OOPSLA | 1 |