A modular foreign function interface

作者: Jeremy Yallop , David Sheets , Anil Madhavapeddy

DOI: 10.1016/J.SCICO.2017.04.002

关键词:

摘要: Foreign function interfaces (FFIs) between high-level languages and system libraries typically intertwine the actions of describing interface a library selecting binding strategy for linking to it. This tight coupling makes it difficult programmers switch different strategies, discourages development new approaches binding, since more exotic are unlikely attract sufficient users justify cost development. We present Cmeleon, replacement standard OCaml FFI that exposes typed constructors correspond operations type algebra C, strategies interpret this structure as separate program stages. Cmeleon parameterises external calls across isolating descriptions from choices relating call construction (code generation vs dynamic frames), concurrency style (blocking, cooperatively or preemptively threaded), separation (in-process, address space network connection). flexibility enables significant code reuse bindings in many contexts, rapid interactive REPL production deployments with generated privilege separation. has been used past two years bind broad variety real-world libraries, entirely supplants need low-level C vast majority applications.

参考文章(31)
Peter Honeyman, Niels Provos, Markus Friedl, Preventing privilege escalation usenix security symposium. pp. 16- 16 ,(2003)
Siliang Li, Gang Tan, None, Finding Reference-Counting Errors in Python/C Programs with Affine Analysis ECOOP 2014 – Object-Oriented Programming. pp. 80- 104 ,(2014) , 10.1007/978-3-662-44202-9_4
Adam Belay, Andrea Bittau, Ali Mashtizadeh, David Terei, David Mazières, Christos Kozyrakis, None, Dune: safe user-level access to privileged CPU features operating systems design and implementation. pp. 335- 348 ,(2012) , 10.5555/2387880.2387913
Xavier Clerc, OCaml-Java: OCaml on the JVM trends in functional programming. pp. 167- 181 ,(2012) , 10.1007/978-3-642-40447-4_11
Anil Madhavapeddy, David Kaloper-Meršinjak, Peter Sewell, Hannes Mehnert, Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation usenix security symposium. pp. 223- 238 ,(2015) , 10.17863/CAM.41243
Andrea Bittau, Petr Marchenko, Brad Karp, Mark Handley, Wedge: splitting applications into reduced-privilege compartments networked systems design and implementation. pp. 309- 322 ,(2008)
David M. Beazley, SWIG: an easy to use tool for integrating scripting languages with C and C++ TCLTK'96 Proceedings of the 4th conference on USENIX Tcl/Tk Workshop, 1996 - Volume 4. pp. 15- 15 ,(1996)
Thorsten Altenkirch, Conor Mcbride, Generic Programming within Dependently Typed Programming Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming. pp. 1- 20 ,(2002) , 10.1007/978-0-387-35672-3_1
Peter Dybjer, Patrik Jansson, Marcin Benke, Universes for generic programs and proofs in dependent type theory Nordic Journal of Computing. ,vol. 10, pp. 265- 289 ,(2003)
Anil Madhavapeddy, Thomas Gazagnaire, Ian Leslie, Jon Crowcroft, Richard Mortier, Balraj Singh, David Sheets, Amir Chaudhry, Jon Ludlam, Thomas Leonard, Magnus Skjegstad, Dave Scott, Jitsu: just-in-time summoning of unikernels networked systems design and implementation. pp. 559- 573 ,(2015)