Abstract
A conservative garbage collector can typically be used with conventionally compiled programs written in C or C++. But two safety issues must be considered. First, the source code must not hide pointers from the garbage collector. This primarily requires stricter adherence to existing restrictions in the language definition. Second, we must ensure that the compiler will not perform transformations that invalidate this requirement.We argue that the same technique can be used to address both issues. We present an algorithm for annotating source or intermediate code to either check the validity of pointer arithmetic in the source, or to guarantee that under minimal, clearly defined assumptions about the compiler, the optimizer cannot "disguise" pointers. We discuss an implementation based on a preprocessor for the GNU C compiler (gcc), and give some measurements of program slow down.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference21 articles.
1. Standard)(3.159-1989 American National Standard for Information Systems- Programming Language- C American National Standards Institute Inc. Standard)(3.159-1989 American National Standard for Information Systems- Programming Language- C American National Standards Institute Inc.
2. Experiences creating a portable cedar
3. Efficient detection of all pointer and array access errors
4. Space efficient conservative garbage collection
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. FPVM;Proceedings of the 31st International Symposium on High-Performance Parallel and Distributed Computing;2022-06-27
2. MarkUs: Drop-in use-after-free prevention for low-level languages;2020 IEEE Symposium on Security and Privacy (SP);2020-05
3. Compiler-Driven Software Speculation for Thread-Level Parallelism;ACM Transactions on Programming Languages and Systems;2016-01-04
4. The challenge of cross-language interoperability;Communications of the ACM;2013-12
5. The Challenge of Cross-language Interoperability;Queue;2013-10