From c00c0bf719d433fc549668f551c845cc8bf93a50 Mon Sep 17 00:00:00 2001 From: Matthias Grimmer Date: Mon, 12 Dec 2016 10:30:14 +0100 Subject: [PATCH] Add all Graal and Truffle related publications to Publications.md --- docs/Publications.md | 266 +++++++++++++++++++++++++++++++------------ 1 file changed, 192 insertions(+), 74 deletions(-) diff --git a/docs/Publications.md b/docs/Publications.md index 12f3b6c2eeb5..f4d7b8d6bbc7 100644 --- a/docs/Publications.md +++ b/docs/Publications.md @@ -1,6 +1,6 @@ -This page describes various presentations and publications related to Graal. +This page describes various presentations and publications related to Graal and Truffle that were published by Oracle Labs and its academic colaborators. -### Graal Tutorial +## Graal Tutorial This tutorial presents Graal, a high-performance dynamic compiler for Java written in Java. It covers the following topics: @@ -18,75 +18,193 @@ 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) -### Graal Papers -* Josef Eisl, Matthias Grimmer, Doug Simon, Thomas Würthinger, Hanspeter Mössenböck:
- __Trace-based Register Allocation in a JIT Compiler__
- In _Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ)_, 2016.
- [Download Paper](http://dl.acm.org/citation.cfm?id=2972206.2972211) - -* Josef Eisl:
- __Trace register allocation__
- In _Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH Companion)_, 2015.
- [Download Paper](http://dl.acm.org/citation.cfm?doid=2814189.2814199) - -* Doug Simon, Christian Wimmer, Bernhard Urban, Gilles Duboscq, Lukas Stadler, Thomas Würthinger:
- __Snippets: Taking the High Road to a Low Level__
- In _Transactions on Architecture and Code Optimization (TACO)_, 2015
- [Download paper](http://dx.doi.org/10.1145/2764907)
- Describes Graal Snippets. - -* David Leopoldseder, Lukas Stadler, Christian Wimmer, Hanspeter Mössenböck:
- __Java-to-JavaScript Translation via Structured Control Flow Reconstruction of Compiler IR__
- In _Proceedings of the 11th Dynamic Language Symposium (DLS)_, 2015.
- [Download Paper](http://dx.doi.org/10.1145/2816707.2816715) - -* Gilles Duboscq, Thomas Würthinger, Hanspeter Mössenböck:
- __Speculation Without Regret: Reducing Deoptimization Meta-data in the Graal compiler__
- In _Proceedings of the Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14)_, 2014
- [Download paper](http://ssw.jku.at/General/Staff/GD/PPPJ-2014-duboscq-29.pdf)
- Describes techniques used in Graal to reduce the memory footprint of speculative optimizations. - -* Lukas Stadler:
- __Partial Escape Analysis and Scalar Replacement for Java__
- PhD thesis, Johannes Kepler University Linz, 2014.
- [Download](http://ssw.jku.at/Research/Papers/Stadler14PhD/Thesis_Stadler_14.pdf) - -* Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck:
- __Partial Escape Analysis and Scalar Replacement for Java__
- In _Proceedings of the Symposium on Code Generation and Optimization (CGO)_, 2014.
- [Download paper](http://ssw.jku.at/Research/Papers/Stadler14/Stadler2014-CGO-PEA.pdf)
- Describes Graal's advanced escape analysis algorithm. - -* 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__
- In _Proceedings of the Workshop on Virtual Machines and Intermediate Languages_, 2013.
- [Download paper](http://lafo.ssw.uni-linz.ac.at/papers/2013_VMIL_GraalIR.pdf)
- Describes the speculative optimizations that Graal's graph-base intermediate representation allows. - -* Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger, Doug Simon:
- __An Experimental Study of the Influence of Dynamic Compiler Optimizations on Scala Performance__
- In _Proceedings of the 4th Workshop on Scala_ (SCALA '13), 2013.
- [Download paper](http://lampwww.epfl.ch/~hmiller/scala2013/resources/pdfs/paper9.pdf) - -* Gilles Duboscq, Lukas Stadler, Thomas Würthinger, Doug Simon, Christian Wimmer, Hanspeter Mössenböck:
- __Graal IR: An Extensible Declarative Intermediate Representation__
- In _Proceedings of the Asia-Pacific Programming Languages and Compilers Workshop_, 2013.
- [Download paper](http://lafo.ssw.uni-linz.ac.at/papers/2013_APPLC_GraalIR.pdf)
- Describes the basic architecture of Graal's graph-based intermediate representation. - -* Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger:
- __Compilation Queueing and Graph Caching for Dynamic Compilers__
- In _Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages_, 2012.
- [Download paper](http://lafo.ssw.uni-linz.ac.at/papers/2012_VMIL_Graal.pdf) - -* 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__
- In _Proceedings of Onward!_, 2013.
- [Download paper](http://lafo.ssw.uni-linz.ac.at/papers/2013_Onward_OneVMToRuleThemAll.pdf)
- Describes the vision of the Truffle approach, and the full system stack including the interpreter and dynamic compiler. - -* Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer:
- __Self-Optimizing AST Interpreters__
- In _Proceedings of the Dynamic Languages Symposium (DLS)_, 2012.
- [Download paper](http://lafo.ssw.uni-linz.ac.at/papers/2012_DLS_SelfOptimizingASTInterpreters.pdf)
- Describes the design of self-optimizing and self-specializing interpreter, and the application to JavaScript. +## Graal Papers + +### 2016 + +- Josef Eisl, Matthias Grimmer, Doug Simon, Thomas Würthinger, Hanspeter Mössenböck +[**Trace-based Register Allocation in a JIT Compiler**](http://dx.doi.org/10.1145/2972206.2972211) +In Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ '16) + +- Stefan Marr, Benoit Daloze, Hanspeter Mössenböck +[**Cross-language compiler benchmarking: are we fast yet?**](https://doi.org/10.1145/2989225.2989232) +In Proceedings of the 12th Symposium on Dynamic Languages (DLS 2016) + +- 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**](https://doi.org/10.1145/2998415.2998416) +In Proceedings of the 8th International Workshop on Virtual Machines and Intermediate Languages (VMIL 2016) + +- Manuel Rigger +[**Sulong: Memory Safe and Efficient Execution of LLVM-Based Languages**](http://ssw.jku.at/General/Staff/ManuelRigger/ECOOP16-DS.pdf) +ECOOP 2016 Doctoral Symposium + +- 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) +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) + +- Lukas Stadler, Adam Welc, Christian Humer, Mick Jordan +[**Optimizing R language execution via aggressive speculation**](https://doi.org/10.1145/2989225.2989236) +In Proceedings of the 12th Symposium on Dynamic Languages (DLS 2016) + +- Daniele Bonetta, Luca Salucci, Stefan Marr, Walter Binder +[**GEMs: shared-memory parallel programming for Node.js**](https://doi.org/10.1145/2983990.2984039) +In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016) + +- Benoit Daloze, Stefan Marr, Daniele Bonetta, Hanspeter Mössenböck +[**Efficient and thread-safe objects for dynamically-typed languages**](https://doi.org/10.1145/3022671.2984001) +In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016) + +- Luca Salucci, Daniele Bonetta, Walter Binder +[**Lightweight Multi-language Bindings for Apache Spark**](http://link.springer.com/chapter/10.1007/978-3-319-43659-3_21) +European Conference on Parallel Processing (Euro-Par 2016) + +- Luca Salucci, Daniele Bonetta, Stefan Marr, Walter Binder +[**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) + +### 2015 + +- Josef Eisl +[**Trace register allocation**](https://doi.org/10.1145/2814189.2814199) +In Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH Companion 2015) + +- Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, Hanspeter Mössenböck +[**High-performance cross-language interoperability in a multi-language runtime**](http://dx.doi.org/10.1145/2936313.2816714) +In Proceedings of the 11th Symposium on Dynamic Languages (DLS 2015) + +- Matthias Grimmer, Roland Schatz, Chris Seaton, Thomas Würthinger, Hanspeter Mössenböck +[**Memory-safe Execution of C on a Java VM**](http://dx.doi.org/10.1145/2786558.2786565) +In Proceedings of the 10th ACM Workshop on Programming Languages and Analysis for Security (PLAS'15) + +- 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://dx.doi.org/10.1145/2724525.2728790) +In Proceedings of the 14th International Conference on Modularity (MODULARITY 2015) + +- Doug Simon, Christian Wimmer, Bernhard Urban, Gilles Duboscq, Lukas Stadler, Thomas Würthinger +[**Snippets: Taking the High Road to a Low Level**](http://dx.doi.org/10.1145/2764907) +ACM Transactions on Architecture and Code Optimization (TACO) + +- David Leopoldseder, Lukas Stadler, Christian Wimmer, Hanspeter Mössenböck +[**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) + +- 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) +In Proceedings of the Principles and Practices of Programming on The Java Platform (PPPJ '15) + +- Michael L. Van De Vanter +[**Building debuggers and other tools: we can "have it all"**](http://dx.doi.org/10.1145/2843915.2843917) +In Proceedings of the 10th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS '15) + +- Benoit Daloze, Chris Seaton, Daniele Bonetta, Hanspeter Mössenböck +[**Techniques and applications for guest-language safepoints**](http://dx.doi.org/10.1145/2843915.2843921) +In Proceedings of the 10th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS '15) + +### 2014 + +- Matthias Grimmer +[**High-performance language interoperability in multi-language runtimes**](http://dx.doi.org/10.1145/2660252.2660256) + In Proceedings of the companion publication of the 2014 ACM SIGPLAN conference on Systems, Programming, and Applications: Software for Humanity (SPLASH '14) + +- 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) + +- 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) +In Proceedings of the 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems PLE (ICOOOLPS '14) + +- Christian Humer, Christian Wimmer, Christian Wirth, Andreas Wöß, Thomas Würthinger +[**A domain-specific language for building self-optimizing AST interpreters**](http://dx.doi.org/10.1145/2658761.2658776) +In Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences (GPCE 2014) + +- Gilles Duboscq, Thomas Würthinger, Hanspeter Mössenböck +[**Speculation without regret: reducing deoptimization meta-data in the Graal compiler**](http://dx.doi.org/10.1145/2647508.2647521) +In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14) + +- Thomas Würthinger +[**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 +[**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) + +- Christian Häubl, Christian Wimmer, Hanspeter Mössenböck +[**Trace transitioning and exception handling in a trace-based JIT compiler for java**](http://dx.doi.org/10.1145/2579673) +ACM Transactions on Architecture and Code Optimization (TACO) + +- Chris Seaton, Michael L. Van De Vanter, Michael Haupt +[**Debugging at Full Speed**](http://dx.doi.org/10.1145/2617548.2617550) +In Proceedings of the Workshop on Dynamic Languages and Applications (Dyla'14) + +- 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://dx.doi.org/10.1145/2647508.2647517) +In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14) + +- Codruţ Stancu, Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz +[**Comparing points-to static analysis with runtime recorded profiling data**](http://dx.doi.org/10.1145/2647508.2647524) +In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ '14) + +### 2013 + +- 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 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ '13) + +- 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://dx.doi.org/10.1145/2509578.2509581) +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) +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 +[**An experimental study of the influence of dynamic compiler optimizations on Scala performance**](http://dx.doi.org/10.1145/2489837.2489846) +In Proceedings of the 4th Workshop on Scala (SCALA '13) + +- Gilles Duboscq, Lukas Stadler, Thomas Würthinger, Doug Simon, Christian Wimmer, Hanspeter Mössenböck +[**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 +[**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 +Computer Languages, Systems & Structures + +- Christian Wimmer, Stefan Brunthaler +[**ZipPy on truffle: a fast and simple implementation of python**](http://dx.doi.org/10.1145/2508075.2514572) +In Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity (SPLASH '13) + +- Christian Häubl, Christian Wimmer, Hanspeter Mössenböck +[**Deriving code coverage information from profiling data recorded for a trace-based just-in-time compiler**](http://dx.doi.org/10.1145/2500828.2500829) +In Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ '13) + +### 2012 + +- Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer +[**Self-optimizing AST interpreters**](http://dl.acm.org/citation.cfm?doid=2384577.2384587) +Proceedings of the 8th symposium on Dynamic languages (DLS '12) + +- Christian Wimmer, Thomas Würthinger +[**Truffle: a self-optimizing runtime system**](http://dx.doi.org/10.1145/2384716.2384723) +In Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity (SPLASH '12) + +- 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) +