Affiliation:
1. University of Wisconsin-Madison, Madison, Wisconsin, USA
Abstract
Programs written in multiple languages are known as
polyglot programs
. In part due to the proliferation of new and productive high-level programming languages, these programs are becoming more common in environments that must interoperate with existing systems. Polyglot programs must manage resource lifetimes across language boundaries. Resource lifetime management bugs can lead to leaks and crashes, which are more difficult to debug in polyglot programs than monoglot programs.
We present analyses to automatically infer the ownership semantics of C libraries. The results of these analyses can be used to generate bindings to C libraries that intelligently manage resources, to check the correctness of polyglot programs, and to document the interfaces of C libraries. While these analyses are unsound and incomplete, we demonstrate that they significantly reduce the manual annotation burden for a suite of fifteen open source libraries.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference21 articles.
1. Ownership types for object encapsulation
2. Modular interprocedural pointer analysis using access paths
3. Stack allocation and synchronization optimizations for Java using escape analysis
4. M.
Emmi R.
Jhala E.
Kohler and
R.
Majumdar
.
Verifying reference counting implementations
. In S. Kowalewski and A. Philippou editors TACAS volume
5505
of
Lecture Notes in Computer Science pages
352
--
367
.
Springer 2009
. ISBN 978-3-642-00767-5. 10.1007/978-3-642-00768-2_30 M. Emmi R. Jhala E. Kohler and R. Majumdar. Verifying reference counting implementations. In S. Kowalewski and A. Philippou editors TACAS volume 5505 of Lecture Notes in Computer Science pages 352--367. Springer 2009. ISBN 978-3-642-00767-5. 10.1007/978-3-642-00768-2_30