Contact The DL Team Contact Us | Switch to tabbed view

top of pageABSTRACT

This paper presents a semantics-based compilation model for an aspect-oriented programming language based on its operational semantics. Using partial evaluation, the model can explain several issues in compilation processes, including how to find places in program text to insert aspect code and how to remove unnecessary run-time checks. It also illustrates optimization of calling-context sensitive pointcuts (cflow), implemented in real compilers.

top of pageAUTHORS



Author image not provided  H. Masuhara

No contact information provided yet.

Bibliometrics: publication history
Publication years2003-2003
Publication count1
Citation Count78
Available for download0
Downloads (6 Weeks)0
Downloads (12 Months)0
Downloads (cumulative)0
Average downloads per article0.00
Average citations per article78.00
View colleagues of H. Masuhara


G. Kiczales G. Kiczales

homepage
gregorkatacm.org
Bibliometrics: publication history
Publication years1986-2013
Publication count65
Citation Count3,000
Available for download40
Downloads (6 Weeks)51
Downloads (12 Months)594
Downloads (cumulative)50,292
Average downloads per article1,257.30
Average citations per article46.15
View colleagues of G. Kiczales


Author image not provided  C. Dutchyn

No contact information provided yet.

Bibliometrics: publication history
Publication years2000-2016
Publication count12
Citation Count210
Available for download8
Downloads (6 Weeks)4
Downloads (12 Months)43
Downloads (cumulative)2,368
Average downloads per article296.00
Average citations per article17.50
View colleagues of C. Dutchyn

top of pageREFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
4
5
 
6
 
7
 
8
 
9
 
10
Gregor Kiczales, John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In ECOOP '97, pages 220-242, 1997.
11
 
12
 
13
 
14
Harold Ossher and Peri Tarr. Multi-dimensional separation of concerns using hyperspaces. Research Report 21452, IBM, April 1999.
15
16
17
 
18
Mitchell Wand. Final algebra semantics and data type extension. Journal of Computer and System Sciences, 19:27-44, 1979.
 
19
Mitchell Wand, Gregor Kiczales, and Chris Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. In Proceedings of FOAL 2002, pages 1-8, 2002.
 
20
Akinori Yonezawa and Satoshi Matsuoka, editors. Third International Conference Reflection 2001, volume 2192 of Lecture Notes in Computer Science, 2001.

top of pageCITED BY

78 Citations

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

top of pageINDEX TERMS

Index Terms are not available

top of pagePUBLICATION

Title CC'03 Proceedings of the 12th international conference on Compiler construction table of contents
Editor Görel Hedin Lund University, Department of Computer Science, Lund, Sweden
Pages 46-60
Publication Date2003-04-07 (yyyy-mm-dd)
PublisherSpringer-Verlag Berlin, Heidelberg ©2003
ISBN: 3-540-00904-3

APPEARS IN
LNCS: Lecture Notes In Computer Science

top of pageREVIEWS


Reviews are not available for this item
Computing Reviews logo

top of pageCOMMENTS

Be the first to comment To Post a comment please sign in or create a free Web account

top of pageTable of Contents

Proceedings of the 12th international conference on Compiler construction
Table of Contents
SECTION: Register allocation
Combined code motion and register allocation using the value state dependence graph
Neil Johnson, Alan Mycroft
Pages: 1-16

We define the Value State Dependence Graph (VSDG). The VSDG is a form of the Value Dependence Graph (VDG) extended by the addition of state dependence edges to model sequentialised computation. These express store dependencies and loop termination dependencies ...
expand
Early control of register pressure for software pipelined loops
Sid-Ahmed-Ali Touati, Christine Eisenbeis
Pages: 17-32

The register allocation in loops is generally performed after or during the software pipelining process. This is because doing a conventional register allocation at first step without assuming a schedule lacks the information of interferences between ...
expand
Register allocation by optimal graph coloring
Christian Andersson
Pages: 33-45

We here present new insights of properties of real-life interference graphs emerging in register allocation. These new insights imply good hopes for a possibility of improving the coloring approach towards optimal solutions. The conclusions are based ...
expand
SECTION: Language constructs and their implementation
A compilation and optimization model for aspect-oriented programs
H. Masuhara, G. Kiczales, C. Dutchyn
Pages: 46-60

This paper presents a semantics-based compilation model for an aspect-oriented programming language based on its operational semantics. Using partial evaluation, the model can explain several issues in compilation processes, including how to find places ...
expand
A pattern matching compiler for multiple target languages
Pierre-Etienne Moreau, Christophe Ringeissen, Marian Vittek
Pages: 61-76

Many processes can be seen as transformations of treelike data structures. In compiler construction, for example, we continuously manipulate trees and perform tree transformations. This paper introduces a pattern matching compiler (TOM): a set of primitives ...
expand
A new one-pass transformation into monadic normal form
Olivier Danvy
Pages: 77-89

We present a translation from the call-by-value λ-calculus to monadic normal forms that includes short-cut boolean evaluation. The translation is higher-order, operates in one pass, duplicates no code, generates no chains of thunks, and is properly ...
expand
SECTION: Type analysis
Run-time type checking for binary programs
Michael Burrows, Stephen N. Freund, Janet L. Wiener
Pages: 90-105

Many important software systems are written in the C programming language. Unfortunately, the C language does not provide strong safety guarantees, and many common programming mistakes introduce type errors that are not caught by the compiler. These ...
expand
Precision in practice: a type-preserving java compiler
Christopher League, Zhong Shao, Valery Trifonov
Pages: 106-120

Popular mobile code architectures (Java and .NET) include verifiers to check for memory safety and other security properties. Since their formats are relatively high level, supporting a wide range of source language features is awkward. Further compilation ...
expand
The MAGICA type inference engine for MATLAB ®
Pramod G. Joisha, Prithviraj Banerjee
Pages: 121-125
SECTION: CC invited talk
Dimensions of precision in reference analysis of object-oriented programming languages
Barbara G. Ryder
Pages: 126-137

There has been approximately a ten year history of reference analyses for object-oriented programming languages. Approaches vary as to how different analyses account for program execution flow, how they capture calling context, and how they model objects, ...
expand
SECTION: Java
Polyglot: an extensible compiler framework for Java
Nathaniel Nystrom, Michael R. Clarkson, Andrew C. Myers
Pages: 138-152

Polyglot is an extensible compiler framework that supports the easy creation of compilers for languages similar to Java, while avoiding code duplication. The Polyglot framework is useful for domain-specific languages, exploration of language design, ...
expand
Scaling Java points-to analysis using SPARK
Ondřej Lhoták, Laurie Hendren
Pages: 153-169

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 each group studied. Furthermore, points-to analysis for Java has ...
expand
Effective inline-threaded interpretation of Java bytecode using preparation sequences
Etienne Gagnon, Laurie Hendren
Pages: 170-184

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 loading, lazy class initialization, and multi-threading features ...
expand
Integrating generations with advanced reference counting garbage collectors
Hezi Azatchi, Erez Petrank
Pages: 185-199

We study an incorporation of generations into a modern reference counting collector. We start with the two on-the-fly collectors suggested by Levanoni and Petrank: a reference counting collector and a tracing (mark and sweep) collector. We then propose ...
expand
SECTION: Pot pourri
The interprocedural express-lane transformation
David Melski, Thomas Reps
Pages: 200-216

The express-lane transformation isolates and duplicates frequently executed program paths, aiming for better data-flow facts along the duplicated paths. An express-lane p is a copy of a frequently executed program path such that p has only ...
expand
Automatic detection of uninitialized variables
Thi Viet Nga Nguyen, François Irigoin, Corinne Ancourt, Fabien Coelho
Pages: 217-231

One of the most common programming errors is the use of a variable before its definition. This undefined value may produce incorrect results, memory violations, unpredictable behaviors and program failure. To detect this kind of error, two approaches ...
expand
Generalised regular parsers
Adrian Johnstone, Elizabeth Scott
Pages: 232-246

Aycock and Horspool have given an algorithm which improves the efficiency of GLR parsers. A grammar is 'reduced' so that there is no recursion apart from non-hidden left recursion, an FA recogniser is then constructed and a stack is used when the recursive ...
expand
Rapid and robust compiler construction using template-based metacompilation
C. van Reeuwijk
Pages: 247-261

We have developed Tm, a template-based metacompiler. Given a set of data-structure definitions and a template, Tm generates files that instantiate the template for the given data structures. With this process, Tm is able to generate program code to manipulate ...
expand
SECTION: ETAPS invited talk
The verifying compiler: a grand challenge for computing research
Tony Hoare
Pages: 262-272

I propose a set of criteria which distinguish a grand challenge in science or engineering from the many other kinds of short-term or long-term research problems that engage the interest of scientists and engineers. As an example drawn from Computer Science, ...
expand
SECTION: Optimization
Address register assignment for reducing code size
M. Kandemir, M. J. Irwin, G. Chen, J. Ramanujam
Pages: 273-289

In DSP processors, minimizing the amount of address calculations is critical for reducing code size and improving performance since studies of programs have shown that instructions that manipulate address registers constitute a significant portion of ...
expand
Offset assignment showdown: evaluation of DSP address code optimization algorithms
Rainer Leupers
Pages: 290-302

Offset assignment is a highly effective DSP address code optimization technique that has been implemented in a number of ANSI C compilers. In this paper we concentrate on a special class of offset assignment problems called "simple offset assignment" ...
expand
Integrating high-level optimizations in a production compiler: design and implementation experience
Somnath Ghosh, Abhay Kanhere, Rakesh Krishnaiyer, Dattatraya Kulkarni, Wei Li, Chu-Cheow Lim, John Ng
Pages: 303-319

The High-Level Optimizer (HLO) is a key part of the compiler technology that enabled Itanium™ and Itanium™2 processors deliver leading floating-point performance at their introduction. In this paper, we discuss the design and implementation ...
expand
Improving data locality by chunking
Cédric Bastoul, Paul Feautrier
Pages: 320-334

Cache memories were invented to decouple fast processors from slow memories. However, this decoupling is only partial, and many researchers have attempted to improve cache use by program optimization. Potential benefits are significant since both energy ...
expand

Powered by The ACM Guide to Computing Literature


The ACM Digital Library is published by the Association for Computing Machinery. Copyright © 2019 ACM, Inc.
Terms of Usage   Privacy Policy   Code of Ethics   Contact Us