ACM Home Page
Please provide us with feedback. Feedback
Jeannie: granting java native interface developers their wishes
Full text PdfPdf (539 KB)
Source
Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications table of contents
Montreal, Quebec, Canada
SESSION: Growing Java table of contents
Pages: 19 - 38  
Year of Publication: 2007
ISBN:978-1-59593-786-5
Also published in ...
Authors
Martin Hirzel  IBM Watson Research Center, Hawthorne, NY
Robert Grimm  New York University, New York, NY
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 19,   Downloads (12 Months): 100,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1297027.1297030
What is a DOI?

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


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
R. Anisko, V. David, and C. Vasseur. Transformers: a C++ program transformation framework. Tech. Report 0310, Laboratoire de Recherche et D& 233;veloppement de l'Epita, Le Kremlin-Bicêtre cedex, France, May 2004.
 
2
3
4
 
5
S. S. Bakken, A. Aulbach, E. Schmid, J. Winstead, L. T. Wilson, R. Lefdorf, A. Zmievski, and J. Ahto. PHP Manual. PHP Documentation Group, Feb. 2004. http://www.php.net/manual/.
6
 
7
 
8
G. Bierman, E. Meijer, and W. Schulte. The essence of data access in CΩ. In Proc. 19th European Conference on Object-Oriented Programming, vol. 3586 of LNCS, pp. 287--311, July 2005.
 
9
J. Blosser. Java tip 98: Reflect on the visitor design pattern. JavaWorld, July 2000. http://www.javaworld.com/javaworld/javatips/jw-javatip98.html.
 
10
M. Blume. No-longer foreign: Teaching an ML compiler to speak C ``natively''. Electronic Notes in Theoretical Computer Science, 59(1):36--52, Sept. 2001.
 
11
C. Brabrand, M. I. Schwartzbach, and M. Vanggaard. The metafront system: Extensible parsing and transformation. Electronic Notes in Theoretical Computer Science, 82(3):592--611, Dec. 2003.
12
 
13
14
 
15
M. Bubak, D. Kurzyniec, and P. Luszczek. Creating Java to native code interfaces with Janet extension. In Proc. SGI Users's Conference, pp. 283--294, Oct. 2000.
 
16
L. Cardelli, F. Matthes, and M. Abadi. Extensible syntax with lexical scoping. Tech. Report 121, Digital Equipment, Systems Research Center, Feb. 1994.
 
17
M. Chakravarty, S. Finne, F. Henderson, M. Kowalczyk, D. Leijen, S. Marlow, E. Meijer, S. Panne, S. P. Jones, A. Reid, M. Wallace, and M. Weber. The Haskell 98 foreign function interface 1.0. http://www.cse.unsw.edu.au/~chak/haskell/ffi/, 2003.
 
18
19
20
 
21
K. Fisher, R. Pucella, and J. Reppy. A framework for interoperability. Electronic Notes in Theoretical Computer Science, 59(1):3--19, Sept. 2001.
 
22
 
23
M. Furr and J. S. Foster. Polymorphic type inference for the JNI. In Proc. 15th European Symposium on Programming, pp. 309--324, Mar. 2006.
 
24
25
 
26
V. Gapeyev, M. Y. Levin, B. C. Pierce, and A. Schmitt. XML goes native: Run-time representations for xtatic. In Proc. 14th International Conference on Compiler Construction, vol. 3443 of LNCS, pp. 43--58, Apr. 2005.
 
27
 
28
R. Grimm. xtc (eXTensible C). http://cs.nyu.edu/rgrimm/xtc/.
29
 
30
C. Grothoff. Walkabout revisited: The runabout. In Proc. 17th European Conference on Object-Oriented Programming, vol. 2743 of LNCS, pp. 101--125, July 2003.
31
 
32
G. Hedin. The JastAdd extensible Java compiler. http://jastadd.cs.lth.se/web/extjava/index.shtml.
 
33
L. Huelsbergen. A portable C interface for Standard ML of New Jersey. Tech. report, AT&T Bell Laboratories, Jan. 1996. http://www.smlnj.org/doc/SMLNJ--C/smlnj-c.ps.
 
34
International Organization for Standardization. Information Technology--Programming Languages-C. ISO/IEC Standard 9899:TC2, May 2005.
 
35
 
36
D. Kurzyniec. Creating Java to native code interfaces with Janet extension. Master's thesis, University of Mining and Metallurgy, Kraków, Poland, Aug. 2000. http://janet-project.sourceforge.net/papers/janet_msc.pdf.
 
37
X. Leroy, D. Doligez, J. Garrigue, D. Rémy, and J. Vouillon. The Objective Caml system release 3.09. http://caml.inria.fr/, Oct. 2005.
 
38
 
39
J. Lind-Nielsen. BuDDy. http://buddy.sourceforge.net/.
40
41
42
 
43
 
44
N. Nystrom, M. R. Clarkson, and A. C. Myers. Polyglot: An extensible compiler framework for Java. In Proc. 12th International Conference on Compiler Construction, vol. 2622 of LNCS, pp. 138--152. Springer, Apr. 2003.
45
46
47
 
48
M. Roth and E. Pelegrí-Llopart. JavaServer Pages specification version 2.0. Tech. report, Sun Microsystems, Nov. 2003.
 
49
A. Shalit. The Dylan Reference Manual. Addison-Wesley, Sept. 1996.
50
51
 
52
Sun Microsystems. Java native interface specification, release 1.1, Jan. 1997.
 
53
Sun Microsystems. Integrating native methods into Java programs. http://java.sun.com/docs/books/tutorialNB/download/tut-native1dot0.zip, May 1998.
 
54
G. Tan, A. W. Appel, S. Chakradhar, A. Raghunathan, S. Ravi, and D. Wang. Safe Java native interface. In Proc. 2006 IEEE International Symposium on Secure Software Engineering, pp. 97--106, Mar. 2006.
55
 
56
 
57
E. Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, Sept. 1997.
58
59
 
60
J. Whaley. JavaBDD. http://javabdd.sourceforge.net/.
 
61
M. Yuen, M. Fiuczynski, R. Grimm, Y. Coady, and D. Walker. Making extensibility of system software practical with the C4 toolkit. In Proc. AOSD Workshop on Software Engineering Properties of Languages and Aspect Technologies, Mar. 2006.

CITED BY  8

Collaborative Colleagues:
Martin Hirzel: colleagues
Robert Grimm: colleagues