The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
A performance model for X10 applications: what's going on under the hood?
Proceedings of the 2011 ACM SIGPLAN X10 Workshop
Proceedings of the 2011 ACM SIGPLAN X10 Workshop
Fast method dispatch and effective use of primitives for reified generics in managed X10
Proceedings of the 2012 ACM SIGPLAN X10 Workshop
Distributed garbage collection for managed X10
Proceedings of the 2012 ACM SIGPLAN X10 Workshop
M3R: increased performance for in-memory Hadoop jobs
Proceedings of the VLDB Endowment
The Java Language Specification, Java SE 7 Edition
The Java Language Specification, Java SE 7 Edition
Resilient X10: efficient failure-aware programming
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
The ability to smoothly interoperate with other programming languages is an essential feature to reduce the barriers to adoption for new languages such as X10. Compiler-supported interoperability between Managed X10 and Java was initially previewed in X10 version 2.2.2 and is now fully supported in X10 version 2.3. In this paper we describe and motivate the Java interoperability features of Managed X10. For calling Java from X10, external linkage for Java code is explained. For calling X10 from Java, the current implementation of Java code generation is explained. An unusual aspect of X10 is that, unlike most other JVM-hosted languages, X10 is also implemented via compilation to C++ (Native X10). The requirement to support multiple execution platforms results in unique challenges to the design of cross-language interoperability. In particular, we discovered that a single top exception type that covers all exception types from source and all target languages is needed as a native type of the source language for portable exception handling. This realization motivated both minor changes in the X10 language specification and an extensive redesign of the X10 core class library for X10 2.3.