Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3012408.3012416acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
short-paper

Sulong - execution of LLVM-based languages on the JVM: position paper

Published: 17 July 2016 Publication History

Abstract

For the last decade, the Java Virtual Machine (JVM) has been a popular platform to host languages other than Java. Language implementation frameworks like Truffle allow the implementation of dynamic languages such as JavaScript or Ruby with competitive performance and completeness. However, statically typed languages are still rare under Truffle. We present Sulong, an LLVM IR interpreter that brings all LLVM-based languages including C, C++, and Fortran in one stroke to the JVM. Executing these languages on the JVM enables a wide area of future research, including high-performance interoperability between high-level and low-level languages, combination of static and dynamic optimizations, and a memory-safe execution of otherwise unsafe and unmanaged languages.

References

[1]
V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A transparent dynamic optimization system. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, PLDI '00, pages 1--12, New York, NY, USA, 2000. ACM.
[2]
B. Calder, P. Feller, and A. Eustace. Value profiling. In Microarchitecture, 1997. Proceedings., Thirtieth Annual IEEE/ACM International Symposium on, pages 259--269. IEEE, 1997.
[3]
Center for Assured Software. Juliet test suite v1.2 for c/c++. Technical report, National Security Agency, 2012.
[4]
G. Duboscq, T. Würthinger, L. Stadler, C. Wimmer, D. Simon, and H. Mössenböck. An intermediate representation for speculative optimizations in a dynamic compiler. In Proceedings of the 7th ACM Workshop on Virtual Machines and Intermediate Languages, VMIL '13, pages 1--10, New York, NY, USA, 2013. ACM.
[5]
M. Grimmer, M. Rigger, R. Schatz, L. Stadler, and H. Mössenböck. Trufflec: Dynamic execution of c on a java virtual machine. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ '14, pages 17--26, New York, NY, USA, 2014. ACM.
[6]
M. Grimmer, R. Schatz, C. Seaton, T. Würthinger, and H. Mössenböck. Memory-safe execution of c on a java vm. In Proceedings of the 10th ACM Workshop on Programming Languages and Analysis for Security, PLAS'15, pages 16--27, New York, NY, USA, 2015. ACM.
[7]
M. Grimmer, C. Seaton, R. Schatz, T. Würthinger, and H. Mössenböck. High-performance cross-language interoperability in a multi-language runtime. In Proceedings of the 11th Symposium on Dynamic Languages, DLS 2015, pages 78--90, New York, NY, USA, 2015. ACM.
[8]
M. Grimmer, C. Seaton, T. Würthinger, and H. Mössenböck. Dynamically composing languages in a modular way: Supporting c extensions for dynamic languages. In Proceedings of the 14th International Conference on Modularity, MODULARITY 2015, pages 1--13, New York, NY, USA, 2015. ACM.
[9]
U. Hölzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In ECOOP'91 European Conference on Object-Oriented Programming, pages 21--38. Springer, 1991.
[10]
C. Lattner and V. Adve. Llvm: a compilation framework for lifelong program analysis transformation. In Code Generation and Optimization, 2004. CGO 2004. International Symposium on, pages 75--86, March 2004.
[11]
NIST. National vulnerability database, 2016.
[12]
D. Nuzman, R. Eres, S. Dyshel, M. Zalmanovici, and J. Castanos. Jit technology with c/c++: Feedback-directed dynamic recompilation for statically compiled languages. ACM Trans. Archit. Code Optim., 10(4):59:1--59:25, Dec. 2013.
[13]
L. Szekeres, M. Payer, T. Wei, and D. Song. Sok: Eternal war in memory. In Proceedings of the 2013 IEEE Symposium on Security and Privacy, SP '13, pages 48--62, Washington, DC, USA, 2013. IEEE Computer Society.
[14]
S.-A.-A. Touati and D. Barthou. On the decidability of phase ordering problem in optimizing compilation. In Proceedings of the 3rd conference on Computing frontiers, pages 147--156. ACM, 2006.
[15]
V. van der Veen, N. dutt Sharma, L. Cavallaro, and H. Bos. Memory errors: The past, the present, and the future. In Proceedings of the 15th International Conference on Research in Attacks, Intrusions, and Defenses, RAID'12, pages 86--106, Berlin, Heidelberg, 2012. Springer-Verlag.
[16]
T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One vm to rule them all. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2013, pages 187--204, New York, NY, USA, 2013. ACM.
[17]
T. Würthinger, A. Wöß, L. Stadler, G. Duboscq, D. Simon, and C. Wimmer. Self-optimizing ast interpreters. In Proceedings of the 8th Symposium on Dynamic Languages, DLS '12, pages 73--82, New York, NY, USA, 2012. ACM.

Cited By

View all
  • (2023)Vineyard: Optimizing Data Sharing in Data-Intensive AnalyticsProceedings of the ACM on Management of Data10.1145/35897801:2(1-27)Online publication date: 20-Jun-2023
  • (2022)Automatically Transforming Arrays to Columnar Storage at Run Time✱Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3560805(141-143)Online publication date: 14-Sep-2022
  • (2022)Automatic Array Transformation to Columnar Storage at Run TimeProceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546919(16-28)Online publication date: 14-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ICOOOLPS '16: Proceedings of the 11th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
July 2016
58 pages
ISBN:9781450348379
DOI:10.1145/3012408
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 the author(s) 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].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 July 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. LLVM
  2. Sulong
  3. Truffle
  4. dynamic compilation
  5. static compilation

Qualifiers

  • Short-paper

Conference

ECOOP '16

Acceptance Rates

Overall Acceptance Rate 11 of 14 submissions, 79%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Vineyard: Optimizing Data Sharing in Data-Intensive AnalyticsProceedings of the ACM on Management of Data10.1145/35897801:2(1-27)Online publication date: 20-Jun-2023
  • (2022)Automatically Transforming Arrays to Columnar Storage at Run Time✱Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3560805(141-143)Online publication date: 14-Sep-2022
  • (2022)Automatic Array Transformation to Columnar Storage at Run TimeProceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546919(16-28)Online publication date: 14-Sep-2022
  • (2021)Using machine learning to predict the code size impact of duplication heuristics in a dynamic compilerProceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3475738.3480943(127-135)Online publication date: 29-Sep-2021
  • (2018)Sandboxed execution of C and other unsafe languages on the Java virtual machineConference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming10.1145/3191697.3213795(227-229)Online publication date: 9-Apr-2018
  • (2018)Sulong, and thanks for all the fishCompanion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of Programming10.1145/3191697.3191726(58-60)Online publication date: 9-Apr-2018
  • (2017)Lenient Execution of C on a Java Virtual MachineProceedings of the 14th International Conference on Managed Languages and Runtimes10.1145/3132190.3132204(35-47)Online publication date: 27-Sep-2017
  • (2016)Bringing low-level languages to the JVM: efficient execution of LLVM IR on TruffleProceedings of the 8th International Workshop on Virtual Machines and Intermediate Languages10.1145/2998415.2998416(6-15)Online publication date: 31-Oct-2016

View Options

Get Access

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