|
ABSTRACT
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.
REFERENCES
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
|
B. Alpern , M. N. Wegman , F. K. Zadeck, Detecting equality of variables in programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-11, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73561]
|
| |
2
|
|
 |
3
|
|
 |
4
|
Russell R. Atkinson , Barbara H. Liskov , Robert W. Scheifler, Aspects Of Implementing CLU, Proceedings of the 1978 annual conference, p.123-129, December 04-06, 1978, Washington, D.C., United States
[doi> 10.1145/800127.804079]
|
 |
5
|
|
| |
6
|
Chase, David. 1994a (June). Implementation of exception handling, Part I. The Journal of C Language Translation, 5(4):229-240.
|
| |
7
|
--. 1994b (September). Implementation of exception handling, Part II: Calling conventions, asynchrony, optimizers, and debuggers. The Journal of C Language Translation, 6(1):20-32.
|
 |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
Drew, Steven J., K. John Gough, and J. Ledermann. 1995. Implementing zero overhead exception handling. Technical Report 95-12, Faculty of Information Technology, Queensland U. of Technology, Brisbane, Australia. See http: //www. dstc. qut. edu. au/"gough/zeroex, ps.
|
 |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
Liskov, Barbara H. and Alan Snyder. 1979 (November). Exception handling in CLU. IEEE Transactions on Software Engineering, SE-5(6):546-558.
|
| |
16
|
Peyton Jones, Simon L. 1992 (April). Implementing lazy functional languages on stock hardware: The spineless tagless G-machine. Journal of Functional Programming, 2(2):127-202.
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
 |
20
|
B. K. Rosen , M. N. Wegman , F. K. Zadeck, Global value numbers and redundant computations, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-27, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73562]
|
CITED BY 12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dong-Heon Jung , Jong Kuk Park , Sung-Hwan Bae , Jaemok Lee , Soo-Mook Moon, Efficient exception handling in Java bytecode-to-c ahead-of-time compiler for smbedded systems, Proceedings of the 6th ACM & IEEE International conference on Embedded software, October 22-25, 2006, Seoul, Korea
|
|
|
|
|
|
Dong-Heon Jung , JongKuk Park , Sung-Hwan Bae , Jaemok Lee , Soo-Mook Moon, Efficient exception handling in Java bytecode-to-C ahead-of-time compiler for embedded systems, Computer Languages, Systems and Structures, v.34 n.4, p.170-183, December, 2008
|
|
|
|
|