Welcome to the 1st Truffle/Graal Languages Workshop |
In recent years we have observed a change in the way people think about implementing programming languages. In the past, an implementation of a given language was monolithic, with all the components, such as the runtime, compiler or memory management subsystem, developed from scratch. With the appearance of Java, developers of other languages started targeting its bytecode format in order to re-use high-performance services provided by Java virtual machines. Evolution of these ideas has resulted in the creation of a specialized open-source Java-based language implementation toolkit, consisting of the Graal optimizing compiler and Graal’s multi-language framework, Truffle. The toolkit facilitates the creation of high-performance language implementations using partial evaluation of self-specializing interpreters and attempts to rectify some of the limitations of previous approaches. In particular, it circumvents possible mismatches between “guest” language semantics and “host” bytecodes. It is rapidly gaining popularity in both industry and academia as a foundation for guest languages (e.g., JavaScript, Ruby, Python, R and others).
The goal of this full day workshop is to attract programming language developers interested in using Truffle and Graal for creating programming language implementations and tools, as well as, more broadly, developers interested in discussing language implementation approaches heavily relying on dynamic profiling feedback and specialization. The workshop is meant to be a forum where language developers can learn about Truffle and Graal, share their experience using the toolkit, identify potential limitations and discuss methods of rectifying them, as well as propose future directions for the development of Truffle languages tooling support and of the toolkit itself. We are especially interested in attracting participation of language developers that are not yet familiar with Truffle or Graal but are interested in exploring how they can simplify development of their own current or future projects.
The workshop will be divided into two segments. The morning segment will consist of a number of short talks and discussions led by experienced language developers, and is aimed at introducing Truffle and Graal as well as sharing experience implementing Truffle languages. The afternoon segment is aimed at providing support for developers planning to jump-start their own projects using Truffle or contributing to one of the existing Truffle-based implementations, as well as discussing how the Truffle platform can be used for programming language research. This segment will start with a hands-on tutorial, and experienced Truffle language developers as well as members of the Truffle/Graal core team will also be available for individual/group mentoring and/or coding sessions.
Tue 7 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:05 - 10:20 | WelcomeTruffle at Bohemia III Chair(s): Adam Welc Oracle Labs, Mario Wolczko Oracle Labs, Thomas Wuerthinger Oracle Labs | ||
10:05 15mDay opening | Introduction Truffle Thomas Wuerthinger Oracle Labs |
10:20 - 12:25 | |||
10:20 25mTalk | One VM to Rule Them All And With Interoperability Bind Them Truffle Matthias Grimmer Johannes Kepler University Linz | ||
10:45 25mTalk | Substrate VM Truffle | ||
11:10 25mTalk | Integrating Truffle into an Existing Language Implementation Truffle Chris Seaton Oracle Labs / University of Manchester | ||
11:35 25mTalk | Developer Tools for Truffle-implemented Languages Truffle Michael Van De Vanter Oracle Labs | ||
12:00 25mTalk | Truffle Trade-offs, Concepts and Experiences Truffle Christian Humer Oracle Labs |
12:25 - 12:35 | |||
12:25 10mOther | Additional discussion 1 Truffle |
13:50 - 15:30 | |||
13:50 25mTalk | Complementary Directions for Truffle Languages and Liballocs Truffle Stephen Kell University of Cambridge | ||
14:15 25mTalk | Accurate Bytecode-level Profiling of Dynamically Optimized Code with Graal Truffle Yudi Zheng University of Lugano | ||
14:40 25mTalk | Product Lines of Interpreters Using Truffle with Object Algebras Truffle Yanlin Wang University of Hong Kong | ||
15:05 25mTalk | Heterogeneous Data Structures for the Masses Truffle |
15:30 - 15:40 | |||
15:30 10mOther | Additional discussion 2 Truffle |
16:10 - 18:15 | |||
16:10 25mTalk | Which Meta-Compilation Approach is Better for Self-Optimizing Interpreters: Tracing or Partial Evaluation? Truffle Stefan Marr Inria, France | ||
16:35 25mTalk | Enabling Heterogeneous Computing in Java with Graal Truffle Juan Fumero University of Edinburgh | ||
17:00 25mTalk | Project Beehive: A Hardware/Software Co-designed Stack for Runtime and Architectural Research Truffle | ||
17:25 25mTalk | SQPyte: JITing a DBMS Truffle CF Bolz-Tereick King's College London , Darya Melicher Carnegie Mellon University, Laurence Tratt King's College London | ||
17:50 25mTalk | Additional discussion 3 Truffle |
Accepted Papers
Call For Participation
We solicit discussion topic proposals, describing both ongoing and future projects, in the form of extended (1-3 page) abstracts. The discussion topics include but are not limited to the following areas:
- Case studies of existing Truffle language implementations.
- Comparing alternative language implementation techniques to Truffle.
- Performance analysis and/or optimizations for Truffle language implementations.
- Tooling support for Truffle languages.
- Infrastructure-level optimizations and extensions that can benefit languages built with Truffle.
- New research project proposals utilizing Truffle and/or Graal.
Depending on the number of accepted submissions, we expect topics to cover between 30 minutes and 60 minutes time slots at the workshop. All proposals should be submitted by email to Adam Welc
- deadline for proposal submissions: April 23, 2015 (by 11:59 PM AoE)
- notification: May 1, 2015
Participants with accepted proposals may ask for financial support to cover travel costs. The financial support is optional and its total amount, if any, will be determined by the organizing committee. Please indicate if financial support is being requested as part of the submission.