[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2500828.2500833acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

OCaml-Java: an ML implementation for the Java ecosystem

Published: 11 September 2013 Publication History

Abstract

Developing complex applications often requires to mix several languages, in order to take advantage of each language strengths in the various parts of the source code. However, this imposes to transfer data from one language to another one; the problem is then not only the ability to exchange data, but to do so in a way that respects the idioms of the various languages involved.
Failing to expose the data in a way that feels natural to the seasoned developer of a given language will import the programming style and even paradigm from one language into the other one, which somewhat defeats the purpose of using different languages for different tasks.
The ocamlwrap tool presented in this article generates class definitions from OCaml type definitions. These classes allow the Java developer to manipulate data structures produced by the OCaml-Java runtime through usual Java patterns.

References

[1]
A. Appleyard: A .NET Bridge for Haskell: Dancing with the Devil, 2007. http://www.haskell.org/haskellwiki/Salsa
[2]
N. Benton, and A. Kennedy: Interlanguage working without tears: blending sml with Java, Proceedings of the fourth ACM SIGPLAN international conference on Functional programming (ICFP '99), 1999.
[3]
N. Benton, A. Kennedy, and C. V. Russo: Adventures in interoperability: the sml.NET experience, Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming (PPDP'04), 2004.
[4]
E. Chailloux, G. Henry, and R. Montelatici: Mixing the Objective Caml and C# Programming Models in the .NET Framework, Workshop on Multiparadigm Programming with OO Languages (MPOOL), 2004.
[5]
E. Chailloux, G. Henry, and R. Montelatici: Interopérabilité des langages fonctionnels: applications en Objective Caml, Technique et Sciences Informatiques Vol 24/9, 2005.
[6]
X. Clerc: OCaml-Java: OCaml on the jvm. Trends in Functional Programming, Lecture Notes in Computer Science Volume 7829, 2013.
[7]
Gamma, Erich, et al. Design patterns: Abstraction and reuse of object-oriented design. Springer Berlin Heidelberg, 2001.
[8]
X. Leroy: The camljava project, http://forge.ocamlcore.org/projects/camljava/
[9]
X. Leroy, D. Doligez, A. Frisch, J. Garrigue, D. Rémy, and J. Vouillon: The OCaml system release 4.00. Documentation and user's manual, July 2012.
[10]
M. Odersky, et al.: The Scala language specification, 2004.
[11]
swig: Simplified Wrapper and Interface Generator, http://www.swig.org.
[12]
The Apache Foundation: the Thrift projet, http://thrift.apache.org.

Cited By

View all
  • (2021)A Study of Call Graph Construction for JVM-Hosted LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.295692547:12(2644-2666)Online publication date: 1-Dec-2021
  • (2018)Towards the Generation of Correct Java Programs (Research Poster)2018 International Conference on High Performance Computing & Simulation (HPCS)10.1109/HPCS.2018.00166(1055-1056)Online publication date: Jul-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PPPJ '13: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
September 2013
188 pages
ISBN:9781450321112
DOI:10.1145/2500828
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 September 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java
  2. OCaml
  3. interoperability
  4. type system

Qualifiers

  • Research-article

Conference

PPPJ '13
PPPJ '13: virtual machines, languages, and tools
September 11 - 13, 2013
Stuttgart, Germany

Acceptance Rates

Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)47
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2021)A Study of Call Graph Construction for JVM-Hosted LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.295692547:12(2644-2666)Online publication date: 1-Dec-2021
  • (2018)Towards the Generation of Correct Java Programs (Research Poster)2018 International Conference on High Performance Computing & Simulation (HPCS)10.1109/HPCS.2018.00166(1055-1056)Online publication date: Jul-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media