Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

George Balatsouras

dblp:136/1051 · DBLP profile ↗
← Back
6ranked-venue papers
2as first author
0since 2021 · last 2018
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 2 first-author

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
3 papers
Program analysis · 87% Programming languages and type systems · 13%

Topics — the 5 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
pointer analysis
0.422014
Introspective analysis: context-sensitivity, across the board · PLDI 2014
Set-based pre-processing for points-to analysis · OOPSLA 2013
Program analysis
static analysis
0.422014
Introspective analysis: context-sensitivity, across the board · PLDI 2014
Class hierarchy complementation: soundly completing a partial type graph · OOPSLA 2013
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis
0.212014
Introspective analysis: context-sensitivity, across the board · PLDI 2014
Program analysis › static analysis › incomplete code analysis
partial program analysis
0.212013
Class hierarchy complementation: soundly completing a partial type graph · OOPSLA 2013
Programming languages and type systems
type systems
0.212013
Class hierarchy complementation: soundly completing a partial type graph · OOPSLA 2013

Methods — techniques the papers use, named apart from their topics

introspective analysis · 0.2program rewriting · 0.2hierarchy completion algorithms · 0.2constraint computation · 0.2
YearPublicationVenuePosition
2018 An efficient data structure for must-alias analysis
abstract
A must-alias (or “definite-alias”) analysis computes sets of expressions that are guaranteed to be aliased at a given pro- gram point. The analysis has been shown to have significant practical impact, and it is actively used in popular research frameworks and commercial tools. We present a custom data structure that speeds up must-alias analysis by nearly two orders of magnitude (while computing identical results). The data structure achieves efficiency by encoding multiple alias sets in a single linked structure, and compactly representing the aliasing relations of arbitrarily long expressions. We ex- plore the data structure’s performance in both an imperative and a declarative setting and contrast it extensively with prior techniques. With our approach, must-alias analysis can be performed efficiently, over large Java benchmarks, in under half a minute, making the analysis cost acceptable for most practical uses.
George Kastrinis, George Balatsouras, Kostas Ferles, Nefeli Prokopaki-Kostopoulou, Yannis Smaragdakis
CC2
2016 Structure-Sensitive Points-To Analysis for C and C++
George Balatsouras, Yannis Smaragdakis
SAS1
2015 More Sound Static Handling of Java Reflection
Yannis Smaragdakis, George Balatsouras, George Kastrinis, Martin Bravenboer
APLAS2
2014 Introspective analysis: context-sensitivity, across the board
abstract
Context-sensitivity is the primary approach for adding more precision to a points-to analysis, while hopefully also maintaining scalability. An oft-reported problem with context-sensitive analyses, however, is that they are bi-modal: either the analysis is precise enough that it manipulates only manageable sets of data, and thus scales impressively well, or the analysis gets quickly derailed at the first sign of imprecision and becomes orders-of-magnitude more expensive than would be expected given the program's size. There is currently no approach that makes precise context-sensitive analyses (of any flavor: call-site-, object-, or type-sensitive) scale across the board at a level comparable to that of a context-insensitive analysis. To address this issue, we propose introspective analysis: a technique for uniformly scaling context-sensitive analysis by eliminating its performance-detrimental behavior, at a small precision expense. Introspective analysis consists of a common adaptivity pattern: first perform a context-insensitive analysis, then use the results to selectively refine (i.e., analyze context-sensitively) program elements that will not cause explosion in the running time or space. The technical challenge is to appropriately identify such program elements. We show that a simple but principled approach can be remarkably effective, achieving scalability (often with dramatic speedup) for benchmarks previously completely out-of-reach for deep context-sensitive analyses.
Yannis Smaragdakis, George Kastrinis, George Balatsouras
PLDI3
2013 Class hierarchy complementation: soundly completing a partial type graph
abstract
We present the problem of class hierarchy complementation: given a partially known hierarchy of classes together with subtyping constraints ("A has to be a transitive subtype of B") complete the hierarchy so that it satisfies all constraints. The problem has immediate practical application to the analysis of partial programs--e.g., it arises in the process of providing a sound handling of "phantom classes" in the Soot program analysis framework. We provide algorithms to solve the hierarchy complementation problem in the single inheritance and multiple inheritance settings. We also show that the problem in a language such as Java, with single inheritance but multiple subtyping and distinguished class vs. interface types, can be decomposed into separate single- and multiple-subtyping instances. We implement our algorithms in a tool, JPhantom, which complements partial Java bytecode programs so that the result is guaranteed to satisfy the Java verifier requirements. JPhantom is highly scalable and runs in mere seconds even for large input applications and complex constraints (with a maximum of 14s for a 19MB binary).
George Balatsouras, Yannis Smaragdakis
OOPSLA1
2013 Set-based pre-processing for points-to analysis
abstract
We present set-based pre-analysis: a virtually universal optimization technique for flow-insensitive points-to analysis. Points-to analysis computes a static abstraction of how object values flow through a program's variables. Set-based pre-analysis relies on the observation that much of this reasoning can take place at the set level rather than the value level. Computing constraints at the set level results in significant optimization opportunities: we can rewrite the input program into a simplified form with the same essential points-to properties. This rewrite results in removing both local variables and instructions, thus simplifying the subsequent value-based points-to computation. Effectively, set-based pre-analysis puts the program in a normal form optimized for points-to analysis.
Yannis Smaragdakis, George Balatsouras, George Kastrinis
OOPSLA2