Detecting equality of variables in programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Global value numbers and redundant computations
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling with continuations
Representing control in the presence of one-shot continuations
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Exception handling: expecting the unexpected
Computer Languages
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java bytecode to native code translation: the caffeine prototype and preliminary results
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
ACM SIGPLAN Notices
Communications of the ACM
Java Virtual Machine Specification
Java Virtual Machine Specification
Program optimization and exception handling
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
C--: A Portable Assembly Language that Supports Garbage Collection
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
C-: A Portable Assembly Language
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
ACM '78 Proceedings of the 1978 annual conference
Machine-independent support for garbage collection, debugging, exception handling, and concurrency (draft)
A study of exception handling and its dynamic optimization in Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatic derivation of compiler machine descriptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Language integration in the common language runtime
ACM SIGPLAN Notices
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Mondrix: memory isolation for linux using mondriaan memory protection
Proceedings of the twentieth ACM symposium on Operating systems principles
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
EDO: Exception-directed optimization in java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modular verification of assembly code with stack-based control abstractions
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Journal of Functional Programming
Efficient exception handling in Java bytecode-to-c ahead-of-time compiler for smbedded systems
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Efficient exception handling in Java bytecode-to-C ahead-of-time compiler for embedded systems
Computer Languages, Systems and Structures
Pillar: A Parallel Implementation Language
Languages and Compilers for Parallel Computing
Translation and optimization for a core calculus with exceptions
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Automatically generating instruction selectors using declarative machine descriptions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Applicative Control-Flow Graph Based on Huet's Zipper
Electronic Notes in Theoretical Computer Science (ENTCS)
ML Module Mania: A Type-Safe, Separately Compiled, Extensible Interpreter
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Embedding an interpreted language using higher-order functions and types
Journal of Functional Programming
Lightweight lexical closures for legitimate execution stack access
CC'06 Proceedings of the 15th international conference on Compiler Construction
Hi-index | 0.00 |
We present mechanisms that enable our compiler-target language, C--, to express four of the best known techniques for implementing exceptions, all within a single, uniform framework. We define the mechanisms precisely, using a formal operational semantics. We also show that exceptions need not require special treatment in the optimizer; by introducing extra dataflow edges, we make standard optimization techniques work even on programs that use exceptions. Our approach clarifies the design space of exception-handling techniques, and it allows a single optimizer to handle a variety of implementation techniques. Our ultimate goal is to allow a source-language compiler the freedom to choose its exception-handling policy, while encapsulating the architecture-dependent mechanisms and their optimization in an implementation of C--that can be used by compilers for many source languages.