The Java platform is multi-faceted, covering a rich diversity of systems, languages, tools, frameworks, and techniques. PPPJ'13 - the 10th conference in the PPPJ series - provided a forum for researchers, practitioners, and educators to present and discuss novel results on all aspects of programming on the Java platform including virtual machines, languages, tools, methods, frameworks, libraries, case studies, and experience reports.

The main topics were:

1. Virtual machines for Java and Java-like language support:
  - JVM and similar VMs
  - VM design and optimization
  - VMs for mobile and embedded devices
  - Real-time VMs
  - Isolation and resource control

2. Languages on the Java platform:
  - JVM languages (Clojure, Groovy, Java, JRuby, Kotlin, Scala, ...)
  - Domain-specific languages
  - Language design and calculi
  - Compilers
  - Language interoperability
  - Parallelism and concurrency
  - Modular and aspect-oriented programming
  - Model-driven development
  - Frameworks and applications
  - Teaching

3. Techniques and tools for the Java platform:
  - Static and dynamic program analysis 
  - Testing 
  - Verification
  - Security and information flow 
  - Workload characterization



Wednesday Sep 11

11:00 - 12:00Conference Registration
12:00 - 13:45Lunch Break
13:45 - 14:00Opening
14:00 - 15:00Keynote 1
Chair: Martin Plümicke

Lambdas in Java-8 
Paul Sandoz
15:00 - 15:30Coffee Break
15:30 - 17:00Session 1: Languages 1
Chair: Görel Hedin

An Adapter-Aware, Non-Intrusive Dependency Injection Framework for Java
Arnout Roemers; Kardelen Hatun; Christoph Bockisch

Pure Trait-based Programming on the Java Platform
Lorenzo Bettini; Ferruccio Damiani

Feel Different on the Java Platform: The Star Programming Language
Frank McCabe; Michael Sperber
17:00 - 17:30Coffee Break
17:30 - 19:00Session 2: Transactional Memory; Dynamic Metrics
Chair: Matthias Hauswirth

Hyflow2: A High Performance Distributed Transactional Memory Framework in Scala
Alexandru Turcu; Binoy Ravindran; Roberto Palmieri

Deriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-time Compiler
Christian Häubl; Christian Wimmer; Hanspeter Mössenböck

JVM-Hosted Languages: They Talk the Talk, but Do they Walk the Walk?
Wing Hang Li; David White; Jeremy Singer
starting 20:00Evening Reception


Thursday Sep 12

09:00 - 10:30Session 3: Optimization
Chair: Roland Yap

Efficient Interpreter Optimizations for the JVM
Gülfem Savrun-Yeniceri; Wei Zhang; Huahan Zhang; Chen Li; Stefan Brunthaler; Per Larsen; Michael Franz

An Efficient Native Function Interface for Java
Matthias Grimmer; Manuel Rigger; Lukas Stadler; Roland Schatz; Hanspeter Mössenböck

Accelerating Habanero-Java Programs with OpenCL Generation
Akihiro Hayashi; Max Grossman; Jisheng Zhao; Jun Shirako; Vivek Sarkar
10:30 - 11:00Coffee Break
11:00 - 12:00 Keynote 2
Chair: Nigel Horspool

Kotlin: Challenges in JVM Language Design

Andrey Breslav
12:00 - 13:30Lunch Break
13:30 - 15:00Session 4: Short Research Papers
Chair: Lorenzo Bettini

Golo, a Dynamic, Light and Efficient Language for Post-invokedynamic JVM
Julien Ponge; Frédéric Le Mouël; Nicolas Stouls

Extending the JastAdd Extensible Java Compiler to Java 7
Jesper Öqvist; Görel Hedin

Refinement-based Testing of Delta-oriented Product Lines
Ferruccio Damiani; Christoph Gladisch; Shmuel Tyszberowicz

An Artificial Intelligence for the Board Game 'Quarto!' in Java
Jochen Mohrmann; Michael Neumann; David Suendermann
starting 16:00Social Event: Excursion to Daimler Museum and Conference Dinner


Friday Sep 13

09:00 - 10:30Session 5: Languages 2
Chair: Ferruccio Damiani

OCaml-Java: an ML Implementation for the Java Ecosystem
Xavier Clerc

TAE-JS: Automated Enhancement of JavaScript Programs by Leveraging the Java Annotations Infrastructure
Myoungkyu Song; Eli Tilevich

Cross-Compiling Java to JavaScript via Tool Chaining
Arno Puder; Victor Woeltjen; Alon Zakai


10:30 - 11:00Coffee Break
11:00 - 12:00Keynote 3:
Chair: Walter Binder

Truffle: A Self-Optimizing, Multi-Language Runtime System
Thomas Würthinger
12:00 - 13:30Lunch Break
13:30 - 15:00Session 6: Tool Papers
Chair: Christoph Bockisch

Jikes RDB: A Debugger for the Jikes RVM
Dmitri Makarov; Matthias Hauswirth

JetBrains MPS as a Tool for Extending Java
Vaclav Pech; Alex Shatalin; Markus Voelter

JNICodejail - Native Code Isolation for Java Programs
Behnaz Hassanshahi; Roland H.C. Yap

Case Study: Implementing a Java JIT Compiler in Haskell
Bernhard Urban; Harald Steinlechner
15:00 - 15:15Closing PPPJ'13 and Outlook to PPPJ'14

Keynote Speakers

Paul Sandoz: Lambdas in Java-8 and an outlook to Java-9.

Abstract: The developer preview of Java 8 will be released towards the end of this year. The talk has a focus on the lambda work, especially. Furthermore there will be a look towards to the future of Java 9 and modularity. Link to Keynote

About Paul Sandoz: A reformed RESTerfarian who previously co-led JAX-RS and led the implementation Jersey, who moved up into the clouds with the industrious bees of CloudBees, and then boomeranged back to Oracle and deep down the Java stack to work on Lambda, Java modularity and Project Jigsaw.


Thomas Wuerthinger: Truffle: A Self-Optimizing, Multi-Language Runtime System

Abstract: A new technique involving tree-rewriting AST interpreters and partial evaluation could change the way we think about implementing languages on   top of a Java virtual machine. It is possible with only modest effort to add new languages by writing an interpreter for them in Java. This talk will present the high-level vision behind this idea as well as the current status of our concrete prototype that is developed as part of the Graal OpenJDK project.

About Thomas Wuerthinger: Senior Research Manager at Oracle Labs. His research interests include Virtual Machines, Feedback-directed Runtime Optimizations, and Static Program Analysis. His current focus is the Graal project that aims at developing a new dynamic compiler for Java. Additionally, he is the architect of the Truffle self-optimizing runtime system.


Andrey Breslav: Kotlin: Challenges in JVM language design

Abstract: Kotlin is a statically typed language compiled to JVM byte codes and JavaScript. It is intended for industrial use and focused on safety, performance and interoperability with existing ecosystems (including Java). This talk gives an overview of the language and presents technical and research challenges our design requirements impose. Link to Keynote.


About Andrey Breslav: Andrey is the lead language designer working on Project Kotlin at JetBrains (kotlin.jetbrains.org).He also works on making the Java language better, serving as a Java Community Process expert in a group for JSR-335 ("Project Lambda").

Accepted Papers

FULL RESEARCH PAPERS (up to 12 pages):

SHORT RESEARCH PAPERS (up to 6 pages):


TOOL PAPERS (up to 4 pages):



Chairs and Commitees

General Chair:
   - Martin Plümicke, Duale Hochschule Baden-Württemberg, Germany

PC Chair:
   - Walter Binder, University of Lugano, Switzerland

Publicity Chair:
    - Danilo Ansaloni, University of Lugano, Switzerland

Web Chair:
    - Oliver Rzepka, Duale Hochschule Baden-Württemberg, Germany

Conference Secretary:
    - Nathan Weißer, Duale Hochschule Baden-Württemberg, Germany

Program Committee:
    - Judith Bishop, Microsoft Research, USA
    - Christoph Bockisch, University of Twente, The Netherlands
    - Eric Bodden, EC SPRIDE, Germany
    - Shigeru Chiba, University of Tokyo, Japan
    - Ferruccio Damiani, University of Torino, Italy  
    - Erik Ernst, Aarhus University, Denmark
    - Michael Franz, University of California Irvine, USA
    - Nicolas Geoffray, Google Inc., Denmark
    - Samuel Z. Guyer, Tufts University, USA
    - Michael Haupt, Oracle Labs, Germany
    - Nigel Horspool, University of Victoria, Canada
    - Einar Broch Johnsen, University of Oslo, Norway
    - Stephen Kell, University of Lugano, Switzerland
    - Andreas Krall, Vienna University of Technology, Austria
    - Doug Lea, State University of New York at Oswego, USA
    - Hanspeter Mössenböck, Johannes Kepler University of Linz, Austria
    - Nathaniel Nystrom, University of Lugano, Switzerland
    - Rei Odaira, IBM Research Tokyo, Japan  
    - Jens Palsberg, University of California Los Angeles, USA
    - Jennifer Sartor, Ghent University, Belgium
    - Ina Schaefer, Technische Universität Braunschweig, Germany
    - Martin Schoeberl, Technical University of Denmark, Denmark
    - Bernhard Scholz, University of Sydney, Australia  
    - Andreas Sewe, Technische Universität Darmstadt, Germany
    - Niranjan Suri, Florida Institute for Human & Machine Cognition, USA
    - Eli Tilevich, Virginia Tech, USA
    - Petr Tuma, Charles University, Czech Republic
    - Alex Villazón, Universidad Privada Boliviana, Bolivia
    - Christian Wimmer, Oracle Labs, USA
    - Jianjun Zhao, Shanghai Jiao Tong University, China 

Steering committee:
    - Markus Aleksy, ABB Corporate Research, Germany
    - Vasco Amaral, Universidade Nova de Lisboa, Portugal
    - Conrad Cunningham, University of Mississippi, USA
    - Ralf Gitzel, ABB Corporate Research, Germany
    - Christian Probst, Technical University of Denmark, Denmark