ComputingComputer ScienceCompilersProgramming LanguagesSoftware EngineeringApplication Programming InterfacesCompiler ConstructionControl-flow AnalysisForeign Function InterfacesProgramming Language DesignProgramming Language ImplementationC Foreign Function InterfaceCompiler Runtime InterfacesCompiler SupportLanguage DesignLanguage IntegrationRuntime Resource ManagementStatic Bug DetectionStatic Error Analysis
Higher-level languages interface with lower-level languages such as C to access platform functionality, reuse legacy libraries, or improve performance. This raises the issue of how to best integrate different languages while also reconciling productivity, safety, portability, and efficiency. This paper presents Jeannie, a new language design for integrating Java with C. In Jeannie, both Javaand C code are nested within each other in the same file and compile down to JNI, the Java platform's standard foreign function interface. By combining the two languages' syntax and semantics, Jeannie eliminates verbose boiler-plate code, enables static error detection across the language boundary, and simplifies dynamic resource management. We describe the Jeannie language and its compiler, while also highlighting lessons from composing two mature programming languages.
35
Template meta-programming for Haskell
Tim Sheard, Simon Peyton Jones · 2002 · 548 citations
Erik Meijer, Brian Beckman, Gavin Bierman · 2006 · 369 citations
The jastadd extensible java compiler
Torbjörn Ekman, Görel Hedin · 2007 · 292 citations
Martin Bravenboer, Eelco Visser · 2004 · 209 citations