Abstract
This article presents the OCaml-Java project whose goal is to allow compilation of OCaml sources into Java bytecodes. The ability to run OCaml code on a Java virtual machine provides the developer with means to leverage the strengths of the Java ecosystem lacking in the OCaml world. Most notably, this includes access to a great number of libraries, and foundations for shared-memory concurrent programming. In order to achieve this, the OCaml-Java project does three contributions: (i) an optimized compiler and runtime support to achieve acceptable performance, (ii) an extension of the classical OCaml typer to allow manipulation of Java elements from the OCaml world, and (iii) a library dedicated to concurrent programming.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Leroy, X., Doligez, D., Frisch, A., Garrigue, J., Rémy, D., Vouillon, J.: Objective Caml (OCaml) programming language website, http://caml.inria.fr/
Chailloux, E., Canou, B., Wang, P.: OCaml for Multicore Architectures, http://www.algo-prog.info/ocmc/web/
Filliâtre, J.-C., Kalyanasundaram, K.: Functory: A Distributed Computing Library for Objective Caml. In: Peña, R., Page, R. (eds.) TFP 2011. LNCS, vol. 7193, pp. 65–81. Springer, Heidelberg (2012)
Danelutto, M., Di Cosmo, R.: Parmap: minimalistic library for multicore programming, https://gitorious.org/parmap
Stolpmann, G.: Plama: Map/Reduce and distributed filesystem, http://plasma.camlcity.org/
Fournet, C., Le Fessant, F., Maranget, L., Schmitt, A.: JoCaml: A language for concurrent distributed and mobile programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 129–158. Springer, Heidelberg (2003)
Hickey, R.: The clojure programming language. In: Proceedings of the 2008 Symposium on Dynamic Languages, DLS 2008, pp. 1:1. ACM, New York (2008)
Odersky, M., et al.: The Scala Language, http://www.scala-lang.org/
Goetz, B., et al.: JSR 335: Lambda Expressions for the Java Programming Language
Lea, D.: Concurrency JSR-166 Interest Site
Benton, N., Kennedy, A.: Interlanguage working without tears: blending SML with Java. SIGPLAN Not. 34(9), 126–137 (1999)
Benton, N., Kennedy, A., Russell, G.: Compiling standard ML to java bytecodes. SIGPLAN Not. 34(1), 129–140 (1998)
Reppy, J.: Concurrent ML: Design, application and semantics. In: Lauer, P.E. (ed.) Functional Programming, Concurrency, Simulation and Automated Reasoning. LNCS, vol. 693, pp. 165–198. Springer, Heidelberg (1993)
Ringenburg, M.F., Grossman, D.: AtomCaml: first-class atomicity via rollback. SIGPLAN Not. 40(9), 92–104 (2005)
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Clerc, X. (2013). OCaml-Java: OCaml on the JVM. In: Loidl, HW., Peña, R. (eds) Trends in Functional Programming. TFP 2012. Lecture Notes in Computer Science, vol 7829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40447-4_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-40447-4_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-40446-7
Online ISBN: 978-3-642-40447-4
eBook Packages: Computer ScienceComputer Science (R0)