Abstract
Through foreign function interfaces (FFIs), software components in different programming languages interact with each other in the same address space. Recent years have witnessed a number of systems that analyse FFIs for safety and reliability. However, lack of formal specifications of FFIs hampers progress in this endeavour. We present a formal operational model, Java Native Interface (JNI) light (JNIL), for a subset of a widely used FFI – the Java Native Interface (JNI). JNIL focuses on the core issues when a high-level garbage-collected language interacts with a low-level language. It proposes abstractions for handling a shared heap, cross-language method calls, cross-language exception handling, and garbage collection. JNIL can directly serve as a formal basis for JNI tools and systems. We demonstrate its utility by proving soundness of a system that checks native code in JNI programs for type-unsafe use of JNI functions. The abstractions in JNIL are also useful when modelling other FFIs, such as the Python/C interface and the OCaml/C interface.
Publisher
Cambridge University Press (CUP)
Subject
Computer Science Applications,Mathematics (miscellaneous)
Reference33 articles.
1. Checking type safety of foreign function calls
2. A Programmer’s Reduction Semantics for Classes and Mixins
3. Tan G. and Croft J. (2008) An empirical security study of the native code in the JDK. In: 17th Usenix Security Symposium 365–377.
4. Pichardie D. (2006) Bicolano – byte code language in Coq. Available at http://mobius.inria.fr/bicolano.
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards Understanding and Reasoning About Android Interoperations;2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE);2019-05