Abstract EVolve: An Open Extensible Software Visualization Framework ∗ (2009)
Qin Wang, Wei Wang, Rhodes Brown, Karel Driesen, Bruno Dufour, Laurie Hendren, ...
Existing visualization tools typically do not allow easy extension by new visualization techniques, and are often coupled with inflexible data input mechanisms. This paper presents EVolve, a flexible...
ABSTRACT abc: An extensible AspectJ compiler ∗ (2008)
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Oege De Moor, ...
Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new...
Aac Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Bruno Dufour, Christopher Goard, Laurie Hendren, ...
compiler for AspectJ – a workbench for aspect-oriented programming language and compilers research. In OOPSLA ’05:
Optimising Aspectj, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, ...
AspectJ, an aspect-oriented extension of Java, is becoming increasingly popular. However, not much work has been directed at optimising compilers for AspectJ. Optimising AOP languages provides many...
Obfuscating Java: the most pain for the least gain ⋆ (2008)
Michael Batchelder, Laurie Hendren
Abstract. Bytecode, Java’s binary form, is relatively high-level and therefore susceptible to decompilation attacks. An obfuscator transforms code such that it becomes more complex and therefore...
ABSTRACT *J: A Tool for Dynamic Analysis of Java Programs ∗ (2008)
Bruno Dufour, Laurie Hendren, Clark Verbrugge
We describe a complete system for gathering, computing and presenting dynamic metrics from Java programs. The system itself was motivated from our real goals in understanding program behaviour as...
ABSTRACT Dynamic Metrics for Java ∗ (2008)
Bruno Dufour, Karel Driesen, Laurie Hendren, Clark Verbrugge
In order to perform meaningful experiments in optimizing compilation and run-time system design, researchers usually rely on a suite of benchmark programs of interest to the optimization technique...
Abstract Towards Dynamic Interprocedural Analysis in JVMs ∗ (2008)
This paper presents a new, inexpensive, mechanism for constructing a complete call graph for Java programs at runtime, and provides an example of using the mechanism for implementing a dynamic...
Languages, Experimentation (2008)
Marc Berndl, Feng Qian, Laurie Hendren, Navindra Umanee
This paper reports on a new approach to solving a subset-based points-to analysis for Java using Binary Decision Diagrams (BDDs). In the model checking community, BDDs have been shown very effective...
Pavel Avgustinov Aske, Optimising Aspectj, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, ...
AspectJ, an aspect-oriented extension of Java, is becoming increasingly popular. However, not much work has been directed at optimising compilers for AspectJ. Optimising AOP languages provides many...
A staged static program analysis to improve the performance of runtime monitoring (2007)
Abstract. In runtime monitoring, a programmer specifies a piece of code to execute when a trace of events occurs during program execution. Our work is based on tracematches, an extension to AspectJ,...
The abc Group Relational Aspects as Tracematches (2007)
Eric Bodden, Reehan Shaikh, Laurie Hendren
2.1 Object-oriented solution by Gamma et al.............................. 6 2.2 AspectJ solution by Hannemann and Kiczales........................... 6
Efficient trace monitoring (2006)
Pavel Avgustinov, Eric Bodden, Elnar Hajiyev, Laurie Hendren, Oege De Moor, Neil Ongkingco, ...
Abstract. A trace monitor observes the sequence of events in a system, and takes appropriate action when a given pattern occurs in that sequence. Aspect-oriented programming provides a convenient...
A staged static program analysis to improve the performance of runtime monitoring
Efficient Trace Monitoring (2006)
Pavel Avgustinov, Julian Tibble, Eric Bodden, Ondrej Lhotak, Laurie Hendren, Oege De Moor, ...
A trace monitor observes the sequence of actions in a software system, and when it detects that this sequence matches a given pattern, it executes some extra code of its own. Trace monitors are often...
Adding Open Modules to AspectJ (2006)
Neil Ongkingco Pavel, Pavel Avgustinov, Julian Tibble, Laurie Hendren, Oege De Moor, Ganesh Sittampalam
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the...
Efficient trace monitoring (2006)
Pavel Avgustinov, Eric Bodden, Elnar Hajiyev, Laurie Hendren, Oege De Moor, Damien Sereni, ...
Abstract. A trace monitor observes the sequence of events in a system, and takes appropriate action when a given pattern occurs in that sequence. Aspect-oriented programming provides a convenient...
Context-sensitive points-to analysis: Is it worth it (2006)
Abstract. We present the results of an empirical study evaluating the precision of subset-based points-to analysis with several variations of context sensitivity on Java benchmarks of significant...
Adding Trace Matching with Free Variables to AspectJ (2005)
Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Oege De Moor, ...
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...
Using inter-procedural side-effect information in JIT optimizations (2005)
Abstract. Inter-procedural analyses such as side-effect analysis can provide information useful for performing aggressive optimizations. We present a study of whether side-effect information improves...
Adding Open Modules, Neil Ongkingco, Pavel Avgustinov, Julian Tibble, Laurie Hendren, Oege De Moor, ...
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the...
abc: An extensible AspectJ compiler (2005)
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Ondrej Lhotak, Oege De Moor, ...
Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new...
Adding Trace Matching, Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, ...
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...
Adding Trace Matching with Free Variables to AspectJ (2005)
Chris Allan Pavel, Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, ...
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...
abc : An extensible AspectJ compiler (2005)
Pavel Avgustinov Aske, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, ...
Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new...
3.1 Definition of Traces.......................................... 14 (2005)
Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Oege De Moor, ...
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Oege De Moor, ...
2 An overview of AspectJ 4
Measuring the dynamic behaviour of aspectj programs (2004)
Bruno Dufour, Christopher Goard, Laurie Hendren, Oege De Moor, Ganesh Sittampalam, Clark Verbrugge
This paper proposes and implements a rigorous method for studying the dynamic behaviour of AspectJ programs. As part of this methodology several new metrics specific to AspectJ programs are proposed...
The abc scanner and parser, including an LALR(1) grammar for (2004)
Laurie Hendren, Oege De Moor, Aske Simon Christensen
The purpose of this document is to give a clear explanation of the scanner and parser for abc. In defining the scanner and lexer our goal was to come up with clear rules for tokens and to express the...
Optimising Aspectj, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, ...
AspectJ, an aspect-oriented extension of Java, is becoming increasingly popular. However, not much work has been directed at optimising compilers for AspectJ. Optimising AOP languages provides many...
abc: An extensible AspectJ compiler (2004)
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, ...
Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new...
Building the abc AspectJ compiler with Polyglot and Soot (2004)
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, ...
Aspect-oriented programming and the development of aspect-oriented languages is rapidly gaining momentum, and the advent of this new kind of programming language provides interesting challenges for...
Building The Abc, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, ...
Aspect-oriented programming and the development of aspect-oriented languages are rapidly gaining momentum, and the advent of this new kind of programming language provides interesting challenges for...
Measuring the dynamic behaviour of aspectj programs (2004)
Bruno Dufour, Oege De Moor, Christopher Goard, Ganesh Sittampalam, Laurie Hendren
This paper proposes and implements a rigorous method for studying the dynamic behaviour of AspectJ programs. As part of this methodology several new metrics specific to AspectJ programs are proposed...
The abc Group abc: An extensible AspectJ compiler (2004)
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Oege De Moor, ...
Optimising Aspectj, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, ...
Bruno Dufour, Christopher Goard, Laurie Hendren, Clark Verbrugge, Oege De Moor, Ganesh Sittampalam
2 A brief introduction to AspectJ 4 2.1 Join points, pointcut and advice...................................... 5
Integrating the Soot compiler infrastructure into an IDE (2004)
Jennifer Lhoták, Jennifer Lhoták, Laurie Hendren, Laurie Hendren
This paper presents the integration of Soot, a byte-code analysis and transformation framework, with an integrated development environment (IDE), Eclipse. Such an integrated toolkit is useful for...
Integrating the Soot compiler infrastructure into an IDE (2004)
Jennifer Lhoták, Laurie Hendren
Abstract. This paper presents the integration of Soot, a byte-code analysis and transformation framework, with an integrated development environment (IDE), Eclipse. Such an integrated toolkit is...
Points-to Analysis using BDDs (2003)
Marc Berndl, Ondrej Lhoták, Feng Qian, Laurie Hendren, Navindra Umanee
This paper reports on a new approach to solving a subset-based points-to analysis for Java using Binary Decision Diagrams (BDDs).
Programming Tools Group Measuring the Dynamic Behaviour of AspectJ Programs (2003)
Bruno Dufour, Christopher Goard, Laurie Hendren, Clark Verbrugge, Oege De Moor, Ganesh Sittampalam
Problems in Objectively Quantifying Benchmarks using Dynamic Metrics." Sable (2003)
Bruno Dufour, Laurie Hendren, Clark Verbrugge
Basic problems encountered when trying to accurately and reasonably measure dynamic properties of a program are discussed. These include problems in determining and assessing specific, desirable...
Scaling Java points-to analysis using Spark (2003)
Abstract. Most points-to analysis research has been done on different systems by different groups, making it difficult to compare results, and to understand interactions between individual factors...
Effective inline-threaded interpretation of Java bytecode using preparation sequences (2003)
Etienne Gagnon, Laurie Hendren
Abstract. Inline-threaded interpretation is a recent technique that improves performance by eliminating dispatch overhead within basic blocks for interpreters written in C [11]. The dynamic class...
STEP: A Framework for the Efficient Encoding of General Trace Data (2002)
Rhodes Brown, Karel Driesen, David Eng, Laurie Hendren, John Jorgensen, Clark Verbrugge, ...
Traditional tracing systems are often limited to recording a fixed set of basic program events. This limitation can frustrate an application or compiler developer who is trying to understand and...
Dynamic Metrics for Compiler Developers (2002)
Bruno Dufour, Karel Driesen, Laurie Hendren, Clark Verbrugge
In order to perform meaningful experiments in optimizing compilation and run-time system design, researchers usually rely on a suite of benchmark programs of interest to the optimization technique...
EVOLVE: An Open Extensible Software Visualization Framework (2002)
Qin Wang, Wei Wang, Rhodes Brown, Karel Driesen, Bruno Dufour, Laurie Hendren, ...
Existing visualization tools typically do not allow easy extension by new visualization techniques, and are often coupled with inflexible data input mechanisms. This paper presents EVolve, a flexible...
STEP: A Framework for the Efficient Encoding of General Trace Data (2002)
Rhodes Brown, Karel Driesen, David Eng, Laurie Hendren, John Jorgensen, Clark Verbrugge, ...
Dynamic Metrics for Compiler Developers (2002)
Bruno Dufour, Karel Driesen, Laurie Hendren, Clark Verbrugge
Practical virtual method call resolution for Java (2000)
Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Patrick Lam, Etienne Gagnon, ...
This paper addresses the problem of resolving virtual method and interface calls in Java bytecode. The main focus is on a new practical technique that can be used to analyze large applications. Our...
A Framework for Optimizing Java Using Attributes (2000)
Patrice Pominville, Feng Qian, Raja Vall, Laurie Hendren, Clark Verbrugge
This paper presents a framework for supporting the optimization of Java programs using attributes in Java class les. We show how class le attributes may be used to convey both optimization...
A Framework for Optimizing Java Using Attributes (2000)
Patrice Pominville, Feng Qian, Raja Vallée-Rai, Laurie Hendren, Clark Verbrugge
This paper presents a framework for supporting the optimization of Java programs using attributes in Java class files. We show how class file attributes may be used to convey both optimization...
Optimizing Java Bytecode using the Soot Framework: Is it Feasible? (2000)
Raja Vallee-Rai, Etienne Gagnon, Laurie Hendren, Patrick Lam, Patrice Pominville, Vijay Sundaresan
. This paper presents Soot, a framework for optimizing Java TM bytecode. The framework is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a...
Optimizing Java Bytecode using the Soot Framework: Is it Feasible? (2000)
Raja Vallee-Rai, Etienne Gagnon, Laurie Hendren, Patrick Lam, Patrice Pominville, Vijay Sundaresan
This paper presents Soot, a framework for optimizing Java TM bytecode. The framework is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a...
A Framework for Optimizing Java Using Attributes (2000)
Patrice Pominville, Feng Qian, Raja Vallée-rai, Laurie Hendren, Clark Verbrugge
This paper presents a framework for supporting the optimization of Java programs using attributes in Java class files. We show how class file attributes may be used to convey both optimization...
Practical virtual method call resolution for Java (2000)
Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Raja Vallée-rai, Patrick Lam, Etienne Gagnon
Practical virtual method call resolution for Java (2000)
Vijay Sundaresan, Chrislain Razafimahefa, Raja Vallée-rai, Laurie Hendren
This paper addresses the problem of resolving virtual method and interface calls in Java. The main focus is on practical, flow-insensitive techniques that can be used to analyze large applications....
Practical Virtual Method Call Resolution for Java (1999)
Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Chrislain Raza Mahefa, Raja Valle-rai, Etienne Gagnon, ...
This paper addresses the problem of resolving virtual method and interface calls in Java bytecode. The main focus is on a new practical technique that can be used to analyze large applications while...
Soot - a Java Bytecode Optimization Framework (1999)
Raja Vallee-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, Vijay Sundaresan
This paper presents Soot, a framework for optimizing Java bytecode. The framework is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a...
SableCC An Object-Oriented Compiler Framework (1998)
Etienne Gagnon, Laurie Hendren
In this paper, we introduce SableCC, an object-oriented framework that generates compilers (and interpreters) in the Java programming language. This framework is based on two fundamental design...
Detecting Parallelism in C Programs with Recursive Data Structures (1998)
Rakesh Ghiya, Laurie Hendren, Yingchun Zhu
In this paper we present techniques to detect three common patterns of parallelism in C programs that use recursive data structures. These patterns include, function calls that access disjoint...
Practical Virtual Method Call Resolution for Java (1998)
Vijay Sundaresan, Chrislain Razafimahefa, Raja Vallée-Rai, Laurie Hendren
This paper addresses the problem of resolving virtual method and interface calls in Java. The main focus is on practical, flow-insensitive techniques that can be used to analyze large applications....
Intra-procedural Inference of Static Types for Java Bytecode (1998)
Etienne Gagnon And Laurie Hendren, Etienne Gagnon, Laurie Hendren
In this paper, we present practical algorithms for inferring static types for local variables and stack locations of Java bytecode. By decoupling the type inference problem from the low level...
Compiling C for the EARTH Multithreaded Architecture (1996)
Laurie Hendren, Xinan Tang, Yingchun Zhu, Guang Gao, Xun Xue, Haiying Cai, ...
Multithreaded architectures provide an opportunity for efficiently executing programs with irregular parallelism and/or irregular locality. This paper presents a strategy that makes use of the...
Is it a Tree, a DAG, or a Cyclic Graph? (1996)
This paper reports on the design and implementation of a practical shape analysis for C. The purpose of the analysis is to aid in the disambiguation of heap-allocated data structures by estimating...
Generalized Constant Propagation A Study in C (1996)
Clark Verbrugge, Phong Co, Laurie Hendren
. Generalized Constant Propagation (GCP) statically estimates the ranges of variables throughout a program. GCP is a top-down compositional compiler analysis in the style of abstract intepretation....
Connection Analysis: A Practical Interprocedural Heap Analysis for C (1995)
This paper presents a practical heap analysis technique, connection analysis, that can be used to disambiguate heap accesses in C programs. The technique is designed for analyzing programs that...
Connection Analysis: A Practical Interprocedural Heap Analysis for C (1995)
This paper presents a practical heap analysis technique, connection analysis, that can be used to disambiguate heap accesses in C programs. The technique is designed for analysing programs that...
A General Data Dependence Test for Dynamic, Pointer-Based Data Structures (1994)
Joseph Hummel, Laurie Hendren, Alexandru Nicolau
Optimizing compilers require accurate dependence testing to enable numerous, performance-enhancing transformations. However, data dependence testing is a difficult problem, particularly in the...
The Multi-Threaded Architecture Multiprocessor (1994)
Herbert Hum, Herbert H. J, Humy Olivier, Olivier Maquelin, Kevin Theobald, Xinan Tang, ...
Multithreaded node architectures have been proposed for future multiprocessor systems. However, some open issues remain: can efficient multithreading support be provided in a multiprocessor machine...
Designing Programming Languages for Analyzability: A Fresh Look at Pointer Data Structures (1992)
In this paper we propose a programming language mechanism and associated compiler techniques which significantly enhance the analyzability of pointerbased data structures frequently used in...
Laurie Hendren, Joseph Hummel, Alexandru Nicolau
Even though impressive progress has been made...
SELSYN-C: A Self-Synchronizing Parallel Programming Language (1992)
In this paper we report our design and implementation of a new self-scheduling parallel programming language, SELSYN-C. Our approach to the challenge of parallel programming language design and...
Thesis: Data Dependence Testing in the Presence of Pointers and Pointer-Based Data (1962)
Joseph E. Hummel, Ph. D. Information, Computer Science, Alex Nicolau (chair, Lubomir Bic, Laurie Hendren, ...
Data structures are important solution components, in particular since the choice of data structure can greatly impact the performance of an application. Often this choice is a pointerbased data...