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.

Alexey Loginov

dblp:10/1529 · DBLP profile ↗
← Back
12ranked-venue papers
4as first author
0since 2021 · last 2016
—ORCID · none

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

Software engineering, systems software and programming languages · 11 · 4 first-authorTheory of computation · 2 · 1 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
7 papers
Program analysis · 61% Programming languages and type systems · 30% Program verification · 5%
Network and information security
2 papers
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.432015
Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery · ICSE (1) 2015
Finite differencing of logical formulas for static analysis · ACM Trans. Program. Lang. Syst. 2010
A relational approach to interprocedural shape analysis · ACM Trans. Program. Lang. Syst. 2010
Programming languages and type systems › type inference
polymorphic type inference
0.212016
Polymorphic type inference for machine code · PLDI 2016
Programming languages and type systems
type inference
0.212016
Polymorphic type inference for machine code · PLDI 2016
Systems and software security › memory safety › memory error detection
buffer overflow detection
0.212015
Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery · ICSE (1) 2015
Systems and software security
memory safety
0.212015
Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery · ICSE (1) 2015
Program analysis › static analysis
abstract interpretation
0.222010
A relational approach to interprocedural shape analysis · ACM Trans. Program. Lang. Syst. 2010
Verifying dereference safety via expanding-scope analysis · ISSTA 2008
Program analysis › static analysis
pointer analysis
0.122010
Verifying dereference safety via expanding-scope analysis · ISSTA 2008
A relational approach to interprocedural shape analysis · ACM Trans. Program. Lang. Syst. 2010
Program analysis › static analysis › abstract interpretation
relational abstraction
0.112010
A relational approach to interprocedural shape analysis · ACM Trans. Program. Lang. Syst. 2010
Program analysis › static analysis › pointer analysis
shape analysis
0.112010
A relational approach to interprocedural shape analysis · ACM Trans. Program. Lang. Syst. 2010
Program analysis › static analysis
interprocedural analysis
0.112008
Verifying dereference safety via expanding-scope analysis · ISSTA 2008
Systems and software security
reverse engineering
0.112016
Polymorphic type inference for machine code · PLDI 2016
Program verification
abstraction refinement
0.112005
Abstraction Refinement via Inductive Learning · CAV 2005
Concurrent programming › concurrency bug detection
data race detection
0.012002
Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs · PLDI 2002
Program analysis
dynamic analysis
0.012002
Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs · PLDI 2002
Concurrent programming › concurrency bug detection › data race detection
dynamic race detection
0.012002
Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs · PLDI 2002
Logic in computer science
many-valued logic
0.012002
Semantic Minimization of 3-Valued Propositional Formulae · LICS 2002
Program verification
annotation inference
0.012008
Verifying dereference safety via expanding-scope analysis · ISSTA 2008
Electronic design automation › logic synthesis
logic minimization
0.012002
Semantic Minimization of 3-Valued Propositional Formulae · LICS 2002

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

subtyping · 0.5recursive types · 0.5points-to analysis · 0.5heuristic static analysis · 0.4DWARF debugging information · 0.4relational abstraction · 0.1procedure summarization · 0.1logical formula transformation · 0.1abstract interpretation · 0.1expanding-scope analysis · 0.1non-standard logic minimization · 0.1
YearPublicationVenuePosition
2016 Polymorphic type inference for machine code
abstract
For many compiled languages, source-level types are erased very early in the compilation process. As a result, further compiler passes may convert type-safe source into type-unsafe machine code. Type-unsafe idioms in the original source and type-unsafe optimizations mean that type information in a stripped binary is essentially nonexistent. The problem of recovering high-level types by performing type inference over stripped machine code is called type reconstruction, and offers a useful capability in support of reverse engineering and decompilation. In this paper, we motivate and develop a novel type system and algorithm for machine-code type inference. The features of this type system were developed by surveying a wide collection of common source- and machine-code idioms, building a catalog of challenging cases for type reconstruction. We found that these idioms place a sophisticated set of requirements on the type system, inducing features such as recursively-constrained polymorphic types. Many of the features we identify are often seen only in expressive and powerful type systems used by high-level functional languages. Using these type-system features as a guideline, we have developed Retypd: a novel static type-inference algorithm for machine code that supports recursive types, polymorphism, and subtyping. Retypd yields more accurate inferred types than existing algorithms, while also enabling new capabilities such as reconstruction of pointer const annotations with 98% recall. Retypd can operate on weaker program representations than the current state of the art, removing the need for high-quality points-to information that may be impractical to compute.
Matthew Noonan, Alexey Loginov, David R. Cok
PLDI2
2015 Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery
abstract
Detecting memory-safety violations in binaries is complicated by the lack of knowledge of the intended data layout, i.e., the locations and sizes of objects. We present lightweight, static, heuristic analyses for recovering the intended layout of data in a stripped binary. Comparison against DWARF debugging information shows high precision and recall rates for inferring source-level object boundaries. On a collection of benchmarks, our analysis eliminates a third to a half of incorrect object boundaries identified by an IDA Pro-inspired heuristic, while retaining nearly all valid object boundaries. In addition to measuring their accuracy directly, we evaluate the effect of using the recovered data for improving the precision of static buffer-overrun detection in the defect-detection tool CodeSonar/x86. We demonstrate that CodeSonar's false-positive rate drops by about 80% across our internal evaluation suite for the tool, while our approximation of CodeSonar's recall only degrades about 25%.
Denis Gopan, Evan Driscoll, Ducson Nguyen, Dimitri Naydich, Alexey Loginov, David Melski
ICSE (1)5
2010 A relational approach to interprocedural shape analysis
abstract
This article addresses the verification of properties of imperative programs with recursive procedure calls, heap-allocated storage, and destructive updating of pointer-valued fields, that is, interprocedural shape analysis . The article makes three contributions. — It introduces a new method for abstracting relations over memory configurations for use in abstract interpretation. — It shows how this method furnishes the elements needed for a compositional approach to shape analysis. In particular, abstracted relations are used to represent the shape transformation performed by a sequence of operations, and an overapproximation to relational composition can be performed using the meet operation of the domain of abstracted relations. — It applies these ideas in a new algorithm for context-sensitive interprocedural shape analysis. The algorithm creates procedure summaries using abstracted relations over memory configurations, and the meet-based composition operation provides a way to apply the summary transformer for a procedure P at each call site from which P is called. The algorithm has been applied successfully to establish properties of both (i) recursive programs that manipulate lists and (ii) recursive programs that manipulate binary trees.
Bertrand Jeannet, Alexey Loginov, Thomas W. Reps, Shmuel Sagiv
ACM Trans. Program. Lang. Syst.2
2010 Finite differencing of logical formulas for static analysis
abstract
This article concerns mechanisms for maintaining the value of an instrumentation relation (also known as a derived relation or view ), defined via a logical formula over core relations, in response to changes in the values of the core relations. It presents an algorithm for transforming the instrumentation relation's defining formula into a relation-maintenance formula that captures what the instrumentation relation's new value should be. The algorithm runs in time linear in the size of the defining formula. The technique applies to program analysis problems in which the semantics of statements is expressed using logical formulas that describe changes to core relation values. It provides a way to obtain values of the instrumentation relations that reflect the changes in core relation values produced by executing a given statement. We present experimental evidence that our technique is an effective one: for a variety of benchmarks, the relation-maintenance formulas produced automatically using our approach yield the same precision as the best available hand-crafted ones.
Thomas W. Reps, Shmuel Sagiv, Alexey Loginov
ACM Trans. Program. Lang. Syst.3
2008 Verifying dereference safety via expanding-scope analysis
abstract
This paper addresses the challenging problem of verifying the safety of pointer dereferences in real Java programs. We provide an automatic approach to this problem based on a sound interprocedural analysis. We present a staged expanding-scope algorithm for interprocedural abstract interpretation, which invokes sound analysis with partial programs of increasing scope. This algorithm achieves many benefits typical of whole-program interprocedural analysis, but scales to large programs by limiting analysis to small program fragments. To address cases where the static analysis of program fragments fails to prove safety, the analysis also suggests possible annotations which, if a user accepts, ensure the desired properties. Experimental evaluation on a number of Java programs shows that we are able to verify 90% of all dereferences soundly and automatically, and further reduce the number of remaining dereferences using non-nullness annotations.
Alexey Loginov, Eran Yahav, Satish Chandra 0001, Stephen J. Fink, Noam Rinetzky, Mangala Gowri Nanda
ISSTA1
2006 Automated Verification of the Deutsch-Schorr-Waite Tree-Traversal Algorithm
Alexey Loginov, Thomas W. Reps, Shmuel Sagiv
SAS1
2005 Abstraction Refinement via Inductive Learning
Alexey Loginov, Thomas W. Reps, Shmuel Sagiv
CAV1
2004 A Relational Approach to Interprocedural Shape Analysis
Bertrand Jeannet, Alexey Loginov, Thomas W. Reps, Shmuel Sagiv
SAS2
2003 Finite Differencing of Logical Formulas for Static Analysis
Thomas W. Reps, Shmuel Sagiv, Alexey Loginov
ESOP3
2002 Semantic Minimization of 3-Valued Propositional Formulae
abstract
This paper presents an algorithm for a non-standard logic-minimization problem that arises in 3-valued propositional logic. The problem is motivated by the potential for obtaining better answers in applications that use 3-valued logic. An answer of 0 or 1 provides precise (definite) information; an answer of 1/2 provides imprecise (indefinite) information. By replacing a formula /spl phi/ with a "better" formula /spl psi/, we may improve the precision of the answers obtained. In this paper we give an algorithm that always produces a formula that is "best" (in a certain well-defined sense).
Thomas W. Reps, Alexey Loginov, Shmuel Sagiv
LICS2
2002 Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs
abstract
We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many false positive datarace reports, or maintained precision but incurred significant overheads in the range of 3x to 30x. In contrast, our approach results in very few false positives and runtime overhead in the 13% to 42% range, making it both efficient and precise. This performance improvement is the result of a unique combination of complementary static and dynamic optimization techniques.
Jong-Deok Choi, Keunwoo Lee, Alexey Loginov, Robert O'Callahan, Vivek Sarkar, Manu Sridharan
PLDI3
2001 Debugging via Run-Time Type Checking
Alexey Loginov, Suan Hsi Yong, Susan Horwitz, Thomas W. Reps
FASE1