学术出版物

本页面介绍了由甲骨文实验室及其学术合作者发布的与 Graal 编译器和 Truffle 相关的各种演示文稿和出版物。

Truffle

GraalVM 提供了 Truffle 框架,用于在 Java 中实现托管语言,在提高语言性能的同时,实现与其他 Truffle 语言的集成并提供工具支持——所有这些都只需在 Java 中实现一个抽象语法树 (AST) 解释器。Truffle 在解释过程中应用 AST 专用化,这使得部分求值能够创建高度优化后的本地代码,而无需为特定语言编写编译器。Java VM 提供了高性能的垃圾回收、线程和并行支持。

甲骨文实验室和外部研究组已经在 Truffle 之上实现了多种编程语言,包括 JavaScript、Python、Ruby、R、Smalltalk 等。其中一些已经超越了该语言之前存在的最佳实现。

我们建议观看 Christian Humer 关于使用 Truffle 进行动态元编译的演示,并查阅本页面上列出的您感兴趣的 Truffle 学术出版物。您还可以在网站上找到全面的 Truffle 文档

Graal 编译器

Graal 编译器是一个用 Java 编写的优化动态编译器。由于其高度可配置和可扩展性,它在许多基准测试中为包括 Java 和 JavaScript 在内的各种托管语言提供了出色的峰值性能。这使得编译器研究达到了一个新的水平:研究人员可以立即在多种语言上评估新的编译器优化。如果您是语言实现者,好奇像 Java HotSpot VM 这样的现代虚拟机是如何优化您的代码的,您可以在 Doug Simon 的演示文稿《查看 GraalVM 编译器》中找到答案。

演示文稿涵盖以下主题:

  • 如何从源代码构建 GraalVM 发行版
  • 编译器如何利用 Java 语言特性简化开发:注解、单元测试以及针对单个编译器优化的基准测试
  • 在 GraalVM 项目中应查看哪些主要类
  • 编译封装器等等

在下方您还可以找到您感兴趣的编译器学术出版物,或者查看网站上的 Graal 编译器文档

学术出版物

2024

2023

2022

2021

2020

  • Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya Opahle, Nico Scordialo, Robert Hirschfeld Example-based Live Programming for Everyone: Building Language-agnostic Tools for Live Programming With LSP and GraalVM 选自 Proceedings of the ACM Symposium for New Ideas, New Paradigms, and Reflections on Everything to do with Programming and Software (Onward! 2020)

  • Jacob Kreindl, Daniele Bonetta, Lukas Stadler, David Leopoldseder, Hanspeter Moessenboeck Multi-language Dynamic Taint Analysis in a Polyglot Virtual Machine 选自 Proceedings of the 17th International Conference on Managed Programming Languages and Runtimes (MPLR 2020)

  • Alexander Riese, Fabio Niephaus, Tim Felgentreff, Robert Hirschfeld User-Defined Interface Mappings for the GraalVM 选自 Proceedings of the Interconnecting Code Workshop (ICW) 2020, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›)

  • Jan Ehmueller, Alexander Riese, Hendrik Tjabben, Fabio Niephaus, Robert Hirschfeld Polyglot Code Finder 选自 Proceedings of the Programming Experience 2020 (PX/20) Workshop, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›)

  • Johannes Henning, Tim Felgentreff, Fabio Niephaus, Robert Hirschfeld Toward Presizing and Pretransitioning Strategies for GraalPython 选自 Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs (MoreVMs) 2020, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›)

2019

2018

2017

2016

2015

2014

2013

  • Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko One VM to Rule Them All 选自 Proceedings of Onward!。描述了 Truffle 方法的愿景,以及包括解释器和动态编译器在内的完整系统堆栈。

  • Matthias Grimmer, Manuel Rigger, Lukas Stadler, Roland Schatz, Hanspeter Moessenboeck An efficient native function interface for Java 选自 Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools. (PPPJ)

  • Matthias Grimmer Runtime Environment for the Truffle/C VM 硕士论文,林茨约翰开普勒大学,2013 年 11 月。

2012

  • Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer Self-Optimizing AST Interpreters 选自 Proceedings of the Dynamic Languages Symposium (DLS)。描述了自优化和自专用解释器的设计,以及在 JavaScript 中的应用。

GraalVM 编译器论文

2023

2022

2021

2020

2019

2018

2016

2015

2014

2013

2012

联系我们