Jeannie: Granting java native interface developers their wishes

Martin Hirzel, Robert Grimm

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

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 Java and 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.

Original languageEnglish (US)
Title of host publicationOOPSLA
Subtitle of host publication22nd International Conference on Object-Oriented Programming, Systems, Languages, and Applications - Proceedings
Pages19-38
Number of pages20
DOIs
StatePublished - 2007
EventOOPSLA 2007: 22nd International Conference on Object-Oriented Programming, Systems, Languages, and Applications - Montreal, QC, Canada
Duration: Oct 21 2007Oct 25 2007

Publication series

NameProceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA

Other

OtherOOPSLA 2007: 22nd International Conference on Object-Oriented Programming, Systems, Languages, and Applications
CountryCanada
CityMontreal, QC
Period10/21/0710/25/07

Keywords

  • C
  • Foreign function interface
  • JNI
  • Java
  • Modular syntax
  • Programming language composition
  • Rats
  • Xtc

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Jeannie: Granting java native interface developers their wishes'. Together they form a unique fingerprint.

Cite this