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

Pavel Avgustinov

dblp:94/3709 · DBLP profile ↗
← Back
13ranked-venue papers
8as first author
0since 2021 · last 2018
0009-0001-0018-5979ORCID · corroborated

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

Software engineering, systems software and programming languages · 10 · 7 first-authorDatabases, data management, data science and information retrieval · 2Theory of computation · 2 · 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
8 papers
Program analysis · 39% Programming languages and type systems · 37% Empirical software engineering · 15%
Databases, data mining, and information retrieval
2 papers
Data models and query languages · 100%
Network and information security
1 paper
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Empirical software engineering
mining software repositories
0.212015
Tracking Static Analysis Violations over Time to Capture Developer Characteristics · ICSE (1) 2015
Programming languages and type systems
aspect-oriented programming
0.242007
Semantics of static pointcuts in aspectJ · POPL 2007
Optimising aspectJ · PLDI 2005
Adding trace matching with free variables to AspectJ · OOPSLA 2005
Data models and query languages › datalog
datalog query optimization
0.222008
Adding magic to an optimising datalog compiler · SIGMOD Conference 2008
Type inference for datalog and its application to query optimisation · PODS 2008
Systems and software security
vulnerability discovery
0.112018
Variant Analysis with QL · FM 2018
Data models and query languages › datalog › datalog query optimization
magic sets
0.112008
Adding magic to an optimising datalog compiler · SIGMOD Conference 2008
Program analysis › binary analysis
bytecode analysis
0.112008
Efficient local type inference · OOPSLA 2008
Programming languages and type systems › type inference
local type inference
0.112008
Efficient local type inference · OOPSLA 2008
Programming languages and type systems
type inference
0.112008
Type inference for datalog and its application to query optimisation · PODS 2008
Programming languages and type systems
language semantics
0.112007
Semantics of static pointcuts in aspectJ · POPL 2007
Program analysis › dynamic analysis
runtime monitoring
0.112007
Making trace monitors feasible · OOPSLA 2007
Program verification › dynamic verification
runtime verification
0.112007
Making trace monitors feasible · OOPSLA 2007
Program verification › temporal logic
temporal logic specification
0.112007
Making trace monitors feasible · OOPSLA 2007
Programming languages and type systems
language design
0.122005
Adding trace matching with free variables to AspectJ · OOPSLA 2005
Optimising aspectJ · PLDI 2005
Program analysis
static analysis
0.112015
Tracking Static Analysis Violations over Time to Capture Developer Characteristics · ICSE (1) 2015
Programming languages and type systems › type inference
static type inference
0.012008
Efficient local type inference · OOPSLA 2008
Program analysis › dynamic analysis › trace analysis
trace alignment
0.012005
Adding trace matching with free variables to AspectJ · OOPSLA 2005

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

QL · 0.7revision history analysis · 0.2type system design · 0.2soundness proof · 0.2optimality proof · 0.2data flow analysis · 0.1temporal logic · 0.1stratego · 0.1datalog · 0.1codequest · 0.1
YearPublicationVenuePosition
2018 Variant Analysis with QL
Pavel Avgustinov, Kevin Backhouse, Man Yue Mo
FM1
2016 QL: Object-oriented Queries on Relational Data
abstract
This paper describes QL, a language for querying complex, potentially recursive data structures. QL compiles to Datalog and runs on a standard relational database, yet it provides familiar-looking object-oriented features such as classes and methods, reinterpreted in logical terms: classes are logical properties describing sets of values, subclassing is implication, and virtual calls are dispatched dynamically by considering the most specific classes containing the receiver. Furthermore, types in QL are prescriptive and actively influence program evaluation rather than just describing it. In combination, these features enable the development of concise queries based on reusable libraries, which are written in a purely declarative style, yet can be efficiently executed even on very large data sets. In particular, we have used QL to implement static analyses for various programming languages, which scale to millions of lines of code.
Pavel Avgustinov, Oege de Moor, Michael Peyton Jones, Max Schäfer
ECOOP1
2015 Tracking Static Analysis Violations over Time to Capture Developer Characteristics
abstract
Many interesting questions about the software quality of a code base can only be answered adequately if fine-grained information about the evolution of quality metrics over time and the contributions of individual developers is known. We present an approach for tracking static analysis violations (which are often indicative of defects) over the revision history of a program, and for precisely attributing the introduction and elimination of these violations to individual developers. As one application, we demonstrate how this information can be used to compute ``fingerprints'' of developers that reflect which kinds of violations they tend to introduce or to fix. We have performed an experimental study on several large open-source projects written in different languages, providing evidence that these fingerprints are well-defined and capture characteristic information about the coding habits of individual developers.
Pavel Avgustinov, Arthur I. Baars, Anders Starcke Henriksen, R. Greg Lavender, Galen Menzel, Oege de Moor, Max Schäfer, Julian Tibble
ICSE (1)1
2008 Efficient local type inference
abstract
Inference of static types for local variables in Java bytecode is the first step of any serious tool that manipulates bytecode, be it for decompilation, transformation or analysis. It is important, therefore, to perform that step as accurately and efficiently as possible. Previous work has sought to give solutions with good worst-case complexity.
Ben Bellamy, Pavel Avgustinov, Oege de Moor, Damien Sereni
OOPSLA2
2008 Type inference for datalog and its application to query optimisation
abstract
Certain variants of object-oriented Datalog can be compiled to Datalog with negation. We seek to apply optimisations akin to virtual method resolution (a well-known technique in compiling Java and other OO languages) to improve efficiency of the resulting Datalog programs. The effectiveness of such optimisations strongly depends on the precision of the underlying type inference algorithm. Previous work on type inference for Datalog has focussed on Cartesian abstractions, where the type of each field is computed separately. Such Cartesian type inference is inherently imprecise in the presence of field equalities. We propose a type system where equalities are tracked, and present a type inference algorithm. The algorithm is proved sound. We also prove that it is optimal for Datalog without negation, in the sense that the inferred type is as tight as possible. Extensive experiments with our type-based optimisations, in a commercial implementation of object-oriented Datalog, confirm the benefits of this non-Cartesian type inference algorithm.
Oege de Moor, Damien Sereni, Pavel Avgustinov, Mathieu Verbaere
PODS3
2008 Adding magic to an optimising datalog compiler
abstract
The magic-sets transformation is a useful technique for dramatically improving the performance of complex queries, but it has been observed that this transformation can also drastically reduce the performance of some queries. Successful implementations of magic in previous work require integration with the database optimiser to make appropriate decisions to guide the transformation (the sideways information passing strategy, or SIPS).
Damien Sereni, Pavel Avgustinov, Oege de Moor
SIGMOD Conference2
2007 Making trace monitors feasible
abstract
A trace monitor observes an execution trace at runtime; when it recognises a specified sequence of events, the monitor runs extra code. In the aspect-oriented programming community, the idea originatedas a generalisation of the advice-trigger mechanism: instead of matchingon single events (joinpoints), one matches on a sequence of events. The runtime verification community has been investigating similar mechanisms for a number of years, specifying the event patterns in terms of temporal logic, and applying the monitors to hardware and software.
Pavel Avgustinov, Julian Tibble, Oege de Moor
OOPSLA1
2007 Semantics of static pointcuts in aspectJ
abstract
In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, AspectJ, allows the expression of highly complex properties of the static program structure.We present the first rigorous semantics of the AspectJ pointcut language, by translating static patterns into safe ( i.e. range-restricted and stratified) Datalog queries. Safe Datalog is a logic language like Prolog, but it does not have data structures; consequently it has a straightforward least fixpoint semantics and all queries terminate.The translation from pointcuts to safe Datalog consists of a set of simple conditional rewrite rules, implemented using the Stratego system. The resulting queries are themselves executable with the CodeQuest system. We present experiments indicating that direct execution of our semantics is not prohibitively expensive.
Pavel Avgustinov, Elnar Hajiyev, Neil Ongkingco, Oege de Moor, Damien Sereni, Julian Tibble, Mathieu Verbaere
POPL1
2007 On the Semantics of Matching Trace Monitoring Patterns
Pavel Avgustinov, Julian Tibble, Oege de Moor
RV1
2006 Aspects and Data Refinement
Pavel Avgustinov, Eric Bodden, Elnar Hajiyev, Oege de Moor, Neil Ongkingco, Damien Sereni, Ganesh Sittampalam, Julian Tibble
MPC1
2005 abc: The AspectBench Compiler for AspectJ
Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie J. Hendren, Sascha Kuzins, Jennifer Lhoták, Ondrej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, Julian Tibble
GPCE2
2005 Adding trace matching with free variables to AspectJ
abstract
An aspect observes the execution of a base program; when certain actions occur, the aspect runs some extra code of its own. In the AspectJ language, the observations that an aspect can make are confined to the current action: it is not possible to directly observe the history of a computation.Recently, there have been several interesting proposals for new history-based language features, most notably by Douence et al. and by Walker and Viggers. In this paper, we present a new history-based language feature called tracematches that enables the programmer to trigger the execution of extra code by specifying a regular pattern of events in a computation trace. We have fully designed and implemented tracematches as a seamless extension of AspectJ.A key innovation in our tracematch approach is the introduction of free variables in the matching patterns. This enhancement enables a whole new class of applications in which events can be matched not only by the event kind, but also by the values associated with the free variables. We provide several examples of applications enabled by this feature.After introducing and motivating the idea of tracematches via examples, we present a detailed semantics of our language design, and we derive an implementation from that semantics. The implementation has been realised as an extension of the abc compiler for AspectJ.
Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie J. Hendren, Sascha Kuzins, Ondrej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, Julian Tibble
OOPSLA2
2005 Optimising aspectJ
Pavel Avgustinov, Aske Simon Christensen, Laurie J. Hendren, Sascha Kuzins, Jennifer Lhoták, Ondrej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, Julian Tibble
PLDI1