by
Matthias Springer, Krieger, Andrew, Manilov, Stanislav and
Hidehiko MasuharaAbstract:
We present the design and implementation of dart2java, an experimental Dart to Java compiler. It is implemented in Dart and currently supports many but not all Dart language constructs. dart2java is a playground to evaluate performance implications of running Dart code on the JVM and to investigate if it is possible to write Dart code in a largely Java-dominated environment. This paper describes the architecture of dart2java, performance optimizations such as non-nullability of primitive types and generic specialization (and their implications), as well as ideas for language interoperability, i.e., calling Java code from Dart and vice versa.
Reference:
Dart2Java: Running Dart in Java-based Environments (Matthias Springer, Krieger, Andrew, Manilov, Stanislav and Hidehiko Masuhara), In Proceedings of the 12th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS'17), ACM, 2017.
Bibtex Entry:
@inproceedings{Springer2017icooolps,
author = {Matthias Springer and Krieger, Andrew and Manilov, Stanislav and Hidehiko Masuhara},
title = {{Dart2Java}: Running {Dart} in {Java}-based Environments},
booktitle = {Proceedings of the 12th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS'17)},
series = {ICOOOLPS'17},
year = {2017},
isbn = {978-1-4503-5088-4},
location = {Barcelona, Spain},
pages = {1:1--1:6},
articleno = {1},
numpages = {6},
opturl = {http://doi.acm.org/10.1145/3098572.3098575},
pdf = {icooolps2017.pdf},
month = jun,
doi = {10.1145/3098572.3098575},
acmid = {3098575},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Dart, Java, compiler, source code generation},
date = {2017-06-19},
abstract = {We present the design and implementation of dart2java, an experimental Dart to Java compiler. It is implemented in Dart and currently supports many but not all Dart language constructs. dart2java is a playground to evaluate performance implications of running Dart code on the JVM and to investigate if it is possible to write Dart code in a largely Java-dominated environment.
This paper describes the architecture of dart2java, performance optimizations such as non-nullability of primitive types and generic specialization (and their implications), as well as ideas for language interoperability, i.e., calling Java code from Dart and vice versa.}
}