Results 1 -
8 of
8
The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages
, 1992
"... Object-oriented programming languages promise to improve programmer productivity by supporting abstract data types, inheritance, and message passing directly within the language. Unfortunately, traditional implementations of object-oriented language features, particularly message passing, have been ..."
Abstract
-
Cited by 120 (15 self)
- Add to MetaCart
Object-oriented programming languages promise to improve programmer productivity by supporting abstract data types, inheritance, and message passing directly within the language. Unfortunately, traditional implementations of object-oriented language features, particularly message passing, have been much slower than traditional implementations of their non-object-oriented counterparts: the fastest existing implementation of Smalltalk-80 runs at only a tenth the speed of an optimizing C implementation. The dearth of suitable implementation technology has forced most object-oriented languages to be designed as hybrids with traditional non-object-oriented languages, complicating the languages and making programs harder to extend and reuse. This dissertation describes a collection of implementation techniques that can improve the run-time performance of object-oriented languages, in hopes of reducing the need for hybrid languages and encouraging wider spread of purely object-oriented langu...
Adaptive Optimizing Compilers for the 21st Century
- Journal of Supercomputing
, 2001
"... Historically, compilers have operated by applying a fixed set of optimizations in a predetermined order. We call such an ordered list of optimizations a compilation sequence. This paper describes a prototype system that uses biased random search to discover a program-specific compilation sequence ..."
Abstract
-
Cited by 70 (8 self)
- Add to MetaCart
Historically, compilers have operated by applying a fixed set of optimizations in a predetermined order. We call such an ordered list of optimizations a compilation sequence. This paper describes a prototype system that uses biased random search to discover a program-specific compilation sequence that minimizes an explicit, external objective function. The result is a compiler framework that adapts its behavior to the application being compiled, to the pool of available transformations, to the objective function, and to the target machine.
An Object-Oriented Compiler Framework
- In Proceedings of TOOLS
, 1998
"... In this thesis, 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 decisions. Firstly, the framework uses objectoriented techniques to automatically build a strictly-typed ..."
Abstract
-
Cited by 34 (0 self)
- Add to MetaCart
In this thesis, 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 decisions. Firstly, the framework uses objectoriented techniques to automatically build a strictly-typed abstract syntax tree that matches the grammar of the compiled language and simplifies debugging. Secondly, the framework generates tree-walker classes using an extended version of the visitor syntax tree using inheritance. These two design decisions lead to a tool that supports a shorter development cycle for constructing compilers. To demonstrate the simplicity of the framework, we discuss the implementation of a state-of-the-art almost linear time points-to analysis. We also provide a brief description of other systems that have been implemented using the SableCC tool. We conclude that the use of object-oriented techniques significantly reduces the length of the programmer written code, can shorten the development time and finally,
Partial Outsourcing: A New Paradigm for Access Control
, 2003
"... Various security models have been proposed in recent years for di#erent purposes. Each of these aims to ease administration by introducing new types of security policies and models. This increases the complexity a system administrator is faced with. Ultimately, the resources expended in choosing am ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Various security models have been proposed in recent years for di#erent purposes. Each of these aims to ease administration by introducing new types of security policies and models. This increases the complexity a system administrator is faced with. Ultimately, the resources expended in choosing amongst all of these models leads to less e#cient administration. In this paper, we propose a new access control paradigm, which is already well established in virus and SPAM protection as partial delegation of administration to external expertise centres. Well-known vulnerabilities can be filtered out and known sources of attacks can be automatically blocked. We describe how partial outsourcing can be achieved in a secure way. A framework, which enables this process has already been developed.
Towards Optimizing Code Generation by Domain-Sensitive Macro Expansion
, 1997
"... : Many modern code generation methods use tree pattern matching with dynamic programming. However, especially in the case of an irregular special-purpose processor architecture their lack of transparency and stability may be problematic: it is difficult to predict the exact code generation result in ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
: Many modern code generation methods use tree pattern matching with dynamic programming. However, especially in the case of an irregular special-purpose processor architecture their lack of transparency and stability may be problematic: it is difficult to predict the exact code generation result in advance, and the effects of a modification in the code generation rules may be surprisingly wide. In contrast, macro expansion techniques are intuitively transparent. When global variables are disallowed, macro expansion typically has the Church-Rosser property: the final expansion result is independent of the expansion order of the individual intermediate macro calls. Besides enabling parallel implementation, order-independence means stability: the effects of modifying a macro definition are guaranteed to remain local. The locality is actually the problem with macro expansion; code optimization is improved when an assembly language macro is sensitive to its context. For instance, it should...
Compilation order matters
, 2002
"... At design time, the compiler writer selects a set of optimizations and an order in which to apply them. These choices have a direct impact on the quality of code that the compiler can generate. They also determine, to a great extent, the set of programs for which the compiler generates good code. Ma ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
At design time, the compiler writer selects a set of optimizations and an order in which to apply them. These choices have a direct impact on the quality of code that the compiler can generate. They also determine, to a great extent, the set of programs for which the compiler generates good code. Making good choices is difficult for several reasons. The sheer number of transformations that have been described in the literature is daunting. The relationship between features of the input program and improvements (or degradations) produced by a transformation is not formally characterized. The interactions between these transformations are poorly understood. Finally, many of the existing transformations have overlapping effects, either singly or in combination. We have built a prototype adaptive compiler that changes its selection of transformations and its application order based on the input program, the performance characteristics of the target machine, and an explicit external objective function. This adaptive compiler performs a series of experiments to find a sequence of optimizations that minimizes the objective function. This prototype compiler lets us explore the impact of transformation selection and ordering on the code that the compiler produces. This paper describes our prototype adaptive compiler. It presents experimental results that demonstrate the impact of program specific optimization sequences. It begins to characterize the search space in which the adaptive compiler operates.
Bibliography
"... Data Types. In Proceedings of the ACM SIGPLAN Conference on Very High Level Languages, pp. 50-59, April, 1974. Published as SIGPLAN Notices 9(4), 1974. [LSAS77] Barbara Liskov, Alan Snyder, Russell Atkinson, and J. Craig Schaffert. Abstraction Mechanisms in CLU. In Communications of the ACM 20(8), ..."
Abstract
- Add to MetaCart
Data Types. In Proceedings of the ACM SIGPLAN Conference on Very High Level Languages, pp. 50-59, April, 1974. Published as SIGPLAN Notices 9(4), 1974. [LSAS77] Barbara Liskov, Alan Snyder, Russell Atkinson, and J. Craig Schaffert. Abstraction Mechanisms in CLU. In Communications of the ACM 20(8), pp. 564-576, August, 1977. [LAB+81] Barbara Liskov, Russell Atkinson, Toby Bloom, Eliot Moss, J. Craig Schaffert, Robert Scheifler, and Alan Snyder. CLU Reference Manual. Springer-Verlag, Berlin, 1981. [LG86] Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. MIT Press, Cambridge, MA, 1986. [McC89] Carl D. McConnell. The Design of the RTL System. Master's thesis, University of Illinois at UrbanaChampaign, 1989. [McF91] Scott McFarling. Procedure Merging with Instruction Caches. In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pp. 71-79, Toronto, Ontario, Canada, June, 1991. Published as SIGPLAN Notices 26(6), J...
Keshav PingaliAtomic Block Formation for Explicit Data Graph Execution Architectures
"... I would like to thank the numerous people who have helped me along the way to completing this dissertation. I thank my committee, Kathryn McKinley, Doug Burger, Steve Keckler, Keshav Pingali, and Scott Mahlke, for their valuable feedback on my research. Their insight has unquestionably improved this ..."
Abstract
- Add to MetaCart
I would like to thank the numerous people who have helped me along the way to completing this dissertation. I thank my committee, Kathryn McKinley, Doug Burger, Steve Keckler, Keshav Pingali, and Scott Mahlke, for their valuable feedback on my research. Their insight has unquestionably improved this dissertation. I am particularly indebted to my advisors, Doug Burger and Kathryn McKinley, for their supervision of this work. I count myself lucky to have had scientists of their caliber to oversee my research. Doug and Kathryn have always challenged me to improve my ideas, yet also encouraged me that those ideas are worth pursuing. I hope that my career in computer science will make them proud. I thank Steve Keckler for his leadership of the TRIPS project along with Doug and Kathryn. My career thus far has been enriched by working on such an ambitious research project as a graduate student. I thank the TRIPS team without whom this work would have been impossible.

