Skip to content

Commit

Permalink
consolidated Graal and Truffle publications to docs/Publications.md
Browse files Browse the repository at this point in the history
  • Loading branch information
dougxc committed May 22, 2017
1 parent 538d97d commit b899ec2
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 159 deletions.
2 changes: 1 addition & 1 deletion compiler/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Further information can be found on the [Debugging](docs/Debugging.md) page.

## Publications and Presentations

For video tutorials, presentations and publications on Graal visit the [Publications](docs/Publications.md) page.
For video tutorials, presentations and publications on Graal visit the [Publications](../docs/Publications.md) page.

## Building JVMCI JDK8

Expand Down
161 changes: 144 additions & 17 deletions compiler/docs/Publications.md → docs/Publications.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
This page describes various presentations and publications related to Graal and Truffle that were published by Oracle Labs and its academic colaborators.
This page describes various presentations and publications related to Graal and Truffle that were published by Oracle Labs and its academic collaborators.

## Truffle Tutorial

Forget "this language is fast", "this language has the libraries I need", and "this language has the tool support I need".
The Truffle framework for implementing managed languages in Java gives you native performance, multi-language integration with all other Truffle languages, and tool support -- all of that by just implementing an abstract syntax tree (AST) interpreter in Java.
Truffle applies AST specialization during interpretation, which enables partial evaluation to create highly optimized native code without the need to write a compiler specifically for a language.
The Java VM contributes high-performance garbage collection, threads, and parallelism support.

This tutorial is both for newcomers who want to learn the basic principles of Truffle, and for people with Truffle experience who want to learn about recently added features.
It presents the basic principles of the partial evaluation used by Truffle and the Truffle DSL used for type specializations, as well as features that were added recently such as the language-agnostic object model, language integration, and debugging support.

Oracle Labs and external research groups have implemented a variety of programming languages on top of Truffle, including JavaScript, Ruby, R, Python, and Smalltalk. Several of them already exceed the best implementation of that language that existed before.

PLDI 2016, June 13, 2016, Santa Barbara, CA
[Video recording](https://youtu.be/FJY96_6Y3a4)
[Slides](https://lafo.ssw.uni-linz.ac.at/pub/papers/2016_PLDI_Truffle.pdf)

## Graal Tutorial

Expand All @@ -14,10 +30,123 @@ This tutorial presents Graal, a high-performance dynamic compiler for Java writt
* Custom compilations with Graal: integration of the compiler with an application or library
* Graal as a compiler for dynamic programming languages in the Truffle framework

CGO 2015, February 7-11, San Francisco, CA<br>
Video recording: [Part 1](https://youtu.be/Af9T9kFk1lM), [Part 2](https://youtu.be/WyU7KctlhzE)<br>
CGO 2015, February 7-11, San Francisco, CA
Video recording: [Part 1](https://youtu.be/Af9T9kFk1lM), [Part 2](https://youtu.be/WyU7KctlhzE)
[Download Slides](http://lafo.ssw.uni-linz.ac.at/papers/2015_CGO_Graal.pdf)

## Truffle Presentations

**Debugging at Full Speed: Instrumenting Truffle-implemented Programs**
JVM Language Summit 2014, July 28-30, Santa Clara, CA
[Video recording](http://medianetwork.oracle.com/video/player/3731019771001)
[Download slides](http://www.oracle.com/technetwork/java/jvmls2014vandevanter-2265212.pdf)

**One VM to Rule Them All**
JVM Language Summit 2013, July 29-31, Santa Clara, CA
[Video recording](http://medianetwork.oracle.com/video/player/2623645003001)
[Download slides](http://lafo.ssw.uni-linz.ac.at/papers/2013_JVMLanguageSummit_OneVMToRuleThemAll.pdf)

**Truffle: A Self-Optimizing Runtime System**
SPLASH 2012, October 19-26, Tucson, AZ
[Download slides](http://lafo.ssw.uni-linz.ac.at/papers/2012_SPLASH_Truffle_Slides.pdf)
[Download absract](http://lafo.ssw.uni-linz.ac.at/papers/2012_SPLASH_Truffle.pdf)

## Truffle Papers

### 2017

- Michael Van De Vanter
[**Building Flexible, Low-Overhead Tooling Support into a High-Performance Polyglot VM (Extended Abstract)**](http://vandevanter.net/mlvdv/publications/mlvdv-morevms-2017.pdf)
_MoreVMs Workshop on Modern Language Runtimes, Ecosystems, and VMs_.

### 2016

- Benoit Daloze, Stefan Marr, Daniele Bonetta, Hanspeter Mössenböck
[**Efficient and Thread-Safe Objects for Dynamically-Typed Languages**](http://ssw.jku.at/General/Staff/Daloze/thread-safe-objects.pdf)
Accepted for the _Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications 2016 (OOPSLA)_.

- Manuel Rigger, Matthias Grimmer, Christian Wimmer, Thomas Würthinger, Hanspeter Mössenböck
**Bringing Low-Level Languages to the JVM: Efficient Execution of LLVM IR on Truffle**
Accepted for the _Workshop on Virtual Machines and Intermediate Languages (VMIL)_.

- Manuel Rigger, Matthias Grimmer, Hanspeter Mössenböck
[**Sulong -- Execution of LLVM-Based Languages on the JVM**](http://2016.ecoop.org/event/icooolps-2016-sulong-execution-of-llvm-based-languages-on-the-jvm)
In _Proceedings of International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS)_.

- Manuel Rigger
[**Sulong: Memory Safe and Efficient Execution of LLVM-Based Languages**](http://ssw.jku.at/General/Staff/ManuelRigger/ECOOP16-DS.pdf)
In _Proceedings of the ECOOP 2016 Doctoral Symposium_.

### 2015

- Benoit Daloze, Chris Seaton, Daniele Bonetta, Hanspeter Mössenböck
[**Techniques and Applications for Guest-Language Safepoints**](http://ssw.jku.at/Research/Papers/Daloze15.pdf)
In _Proceedings of the International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS)_.

- Matthias Grimmer, Chris Seaton, Roland Schatz, Würthinger, Hanspeter Mössenböck
[**High-Performance Cross-Language Interoperability in a Multi-Language Runtime**](http://dx.doi.org/10.1145/2816707.2816714)
In _Proceedings of the 11th Dynamic Language Symposium (DLS)_.

- Matthias Grimmer, Chris Seaton, Thomas Würthinger, Hanspeter Mössenböck
[**Dynamically Composing Languages in a Modular Way: Supporting C Extensions for Dynamic Languages.**](http://chrisseaton.com/rubytruffle/modularity15/rubyextensions.pdf)
In _Proceedings of the 14th International Conference on Modularity_.

- Gülfem Savrun-Yeniçeri, Michael Van De Vanter, Per Larsen, Stefan Brunthaler, and Michael Franz
[**An Efficient and Generic Event-based Profiler Framework for Dynamic Languages**](http://dl.acm.org/citation.cfm?id=2807435)
In _Proceedings of the International Conference on Principles and Practices of Programming on The Java Platform: virtual machines, languages, and tools (PPPJ)_.

- Michael Van De Vanter
[**Building Debuggers and Other Tools: We Can "Have it All" (Position Paper)**](http://vandevanter.net/mlvdv/publications/2015-icooolps.pdf)
In _Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS)_.

### 2014

- Matthias Grimmer
[**High-performance language interoperability in multi-language runtimes**](http://dl.acm.org/citation.cfm?doid=2660252.2660256)
In _Proceedings of the companion publication of the 2014 ACM SIGPLAN conference on Systems, Programming, and Applications: Software for Humanity (SPLASH Companion)_.

- Matthias Grimmer, Manuel Rigger, Roland Schatz, Lukas Stadler, Hanspeter Mössenböck
[**Truffle C: Dynamic Execution of C on the Java Virtual Machine**](http://dl.acm.org/citation.cfm?id=2647528)
In _Proceedings of the International Conference on Principles and Practice of Programming in Java (PPPJ)_.

- Christian Humer, Christian Wimmer, Christian Wirth, Andreas Wöß, Thomas Würthinger
[**A Domain-Specific Language for Building Self-Optimizing AST Interpreters**](http://lafo.ssw.uni-linz.ac.at/papers/2014_GPCE_TruffleDSL.pdf)
In _Proceedings of the International Conference on Generative Programming: Concepts and Experiences (GPCE)_.

- Andreas Wöß, Christian Wirth, Daniele Bonetta, Chris Seaton, Christian Humer, Hanspeter Mössenböck
[**An Object Storage Model for the Truffle Language Implementation Framework**](http://dl.acm.org/citation.cfm?id=2647517)
In _Proceedings of International Conference on Principles and Practice of Programming in Java (PPPJ)_.

- Matthias Grimmer, Thomas Würthinger, Andreas Wöß, Hanspeter Mössenböck
[**An Efficient Approach to Access Native Binary Data from JavaScript**](http://dl.acm.org/citation.cfm?id=2633302)
In _Proceedings of the 9th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS)_.

- Chris Seaton, Michael Van De Vanter, and Michael Haupt
[**Debugging at full speed**](http://www.lifl.fr/dyla14/papers/dyla14-3-Debugging_at_Full_Speed.pdf)
In _Proceedings of the 8th Workshop on Dynamic Languages and Applications (DYLA)_.

### 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**](http://lafo.ssw.uni-linz.ac.at/papers/2013_Onward_OneVMToRuleThemAll.pdf)
In _Proceedings of Onward!_.
Describes the vision of the Truffle approach, and the full system stack including the interpreter and dynamic compiler.

- Matthias Grimmer, Manuel Rigger, Lukas Stadler, Roland Schatz, Hanspeter Mössenböck
[**An efficient native function interface for Java**](http://dx.doi.org/10.1145/2500828.2500832)
In _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**](http://ssw.jku.at/Research/Papers/Grimmer13Master/)
Master's thesis, Johannes Kepler University Linz, November 2013.

### 2012

- Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer
[**Self-Optimizing AST Interpreters**](http://lafo.ssw.uni-linz.ac.at/papers/2012_DLS_SelfOptimizingASTInterpreters.pdf)
In _Proceedings of the Dynamic Languages Symposium (DLS)_.
Describes the design of self-optimizing and self-specializing interpreter, and the application to JavaScript.

## Graal Papers

### 2016
Expand All @@ -42,7 +171,6 @@ ECOOP 2016 Doctoral Symposium
[**Sulong - Execution of LLVM-Based Languages on the JVM**](http://2016.ecoop.org/event/icooolps-2016-sulong-execution-of-llvm-based-languages-on-the-jvm)
Int. Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS'16)


- Luca Salucci, Daniele Bonetta, Walter Binder
[**Efficient Embedding of Dynamic Languages in Big-Data Analytics**](http://ieeexplore.ieee.org/document/7756203/)
International Conference on Distributed Computing Systems Workshops (ICDCSW 2016)
Expand All @@ -67,6 +195,10 @@ European Conference on Parallel Processing (Euro-Par 2016)
[**Generic messages: capability-based shared memory parallelism for event-loop systems**](https://doi.org/10.1145/3016078.2851184)
Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2016)

- Stefan Marr, Chris Seaton, Stéphane Ducasse
[**Zero-overhead metaprogramming: reflection and metaobject protocols fast and without compromises**](http://dx.doi.org/10.1145/2813885.2737963)
In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2016)

### 2015

- Josef Eisl
Expand All @@ -93,13 +225,9 @@ ACM Transactions on Architecture and Code Optimization (TACO)
[**Java-to-JavaScript translation via structured control flow reconstruction of compiler IR**](http://dx.doi.org/10.1145/2816707.2816715)
In Proceedings of the 11th Symposium on Dynamic Languages (DLS 2015)

- Stefan Marr, Chris Seaton, Stéphane Ducasse
[**Zero-overhead metaprogramming: reflection and metaobject protocols fast and without compromises**](http://dx.doi.org/10.1145/2813885.2737963)
In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2016)

- Codruţ Stancu, Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz
[**Safe and efficient hybrid memory management for Java**](http://dx.doi.org/10.1145/2887746.2754185)
Proceedings of the 2015 International Symposium on Memory Management (ISMM 2015)
Proceedings of the 2015 International Symposium on Memory Management (ISMM '15)

- Gülfem Savrun-Yeniçeri, Michael L. Van de Vanter, Per Larsen, Stefan Brunthaler, Michael Franz
[**An Efficient and Generic Event-based Profiler Framework for Dynamic Languages**](http://dx.doi.org/10.1145/2807426.2807435)
Expand All @@ -115,8 +243,8 @@ In Proceedings of the 10th Workshop on Implementation, Compilation, Optimization

### 2014

- Wei Zhang, Per Larsen, Stefan Brunthaler, Michael Franz
[**Accelerating iterators in optimizing AST interpreters**](https://doi.org/10.1145/2660193.2660223)
- Wei Zhang, Per Larsen, Stefan Brunthaler, Michael Franz
[**Accelerating iterators in optimizing AST interpreters**](https://doi.org/10.1145/2660193.2660223)
In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA '14)

- Matthias Grimmer
Expand All @@ -125,7 +253,7 @@ In Proceedings of the 10th Workshop on Implementation, Compilation, Optimization

- Matthias Grimmer, Manuel Rigger, Roland Schatz, Lukas Stadler, Hanspeter Mössenböck
[**TruffleC: dynamic execution of C on a Java virtual machine**](http://dx.doi.org/10.1145/2647508.2647528)
In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14)
In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14)

- Matthias Grimmer, Thomas Würthinger, Andreas Wöß, Hanspeter Mössenböck
[**An efficient approach for accessing C data structures from JavaScript**](http://dx.doi.org/10.1145/2633301.2633302)
Expand All @@ -143,7 +271,7 @@ In Proceedings of the 2014 International Conference on Principles and Practices
[**Graal and truffle: modularity and separation of concerns as cornerstones for building a multipurpose runtime**](http://dx.doi.org/10.1145/2584469.2584663)
In Proceedings of the companion publication of the 13th international conference on Modularity (MODULARITY '14)

- Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck
- Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck
[**Partial Escape Analysis and Scalar Replacement for Java**](http://dx.doi.org/10.1145/2544137.2544157)
In Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO '14)

Expand Down Expand Up @@ -174,7 +302,7 @@ In Proceedings of the 2013 International Conference on Principles and Practices
In Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software (Onward! 2013)

- Gilles Duboscq, Thomas Würthinger, Lukas Stadler, Christian Wimmer, Doug Simon, Hanspeter Mössenböck
[**An intermediate representation for speculative optimizations in a dynamic compiler**](ttp://dx.doi.org/10.1145/2542142.2542143)
[**An intermediate representation for speculative optimizations in a dynamic compiler**](http://dx.doi.org/10.1145/2542142.2542143)
In Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages (VMIL '13)

- Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger, Doug Simon
Expand All @@ -185,9 +313,9 @@ In Proceedings of the 4th Workshop on Scala (SCALA '13)
[**Graal IR: An Extensible Declarative Intermediate Representation**](http://ssw.jku.at/General/Staff/GD/APPLC-2013-paper_12.pdf)
In Proceedings of the Asia-Pacific Programming Languages and Compilers Workshop, 2013.

- Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
- Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
[**Context-sensitive trace inlining for Java**](http://dx.doi.org/10.1016/j.cl.2013.04.002)
Special issue on the Programming Languages track at the 27th ACM Symposium on Applied Computing
Special issue on the Programming Languages track at the 27th ACM Symposium on Applied Computing
Computer Languages, Systems & Structures

- Christian Wimmer, Stefan Brunthaler
Expand All @@ -211,4 +339,3 @@ In Proceedings of the 3rd annual conference on Systems, programming, and applica
- Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
[**Evaluation of trace inlining heuristics for Java**](http://dx.doi.org/10.1145/2245276.2232084)
In Proceedings of the 27th Annual ACM Symposium on Applied Computing (SAC '12)

3 changes: 1 addition & 2 deletions truffle/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ SimpleLanguage is well documented and designed to demonstrate most of the Truffl
Important links to resources that are available:
- [Truffle javadoc overview](http://graalvm.github.io/truffle/javadoc/)
- [SimpleLanguage example](https://github.com/graalvm/simplelanguage)
- [Tutorials and publications on Truffle](https://github.com/graalvm/truffle/blob/master/docs/Publications.md)
- [Tutorials and publications on Graal](https://github.com/graalvm/graal-core/blob/master/docs/Publications.md)
- [Tutorials and publications on Truffle and Graal](../docs/Publications.md)
- [Graal VM download](http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html) on the Oracle Technology Network


Expand Down
Loading

0 comments on commit b899ec2

Please sign in to comment.