We are delighted to have the following two invited speakers:
- Manuel Fahndrich (Microsoft Research, USA): Lessons from a Web-Based IDE and Runtime
Abstract At Microsoft Research, we have built a purely web-based IDE called TouchDevelop that enables anyone to pick up a device and start programming. The IDE is geared towards touch based devices without keyboards, ranging from phones, over tablets, to large display screens. Programs can be edited and run on the device without an auxiliary PC. Transitioning between programming on one device, and continuing on another device is seamless. The web application also works offline.
TouchDevelop has been successfully applied to teaching introductory programming classes at the high-school level and at some college level for non-CS majors. For researchers, TouchDevelop provides a green-field platform to explore IDE and programming language design, as well as runtime techniques and distributed data storage abstractions.
In this talk, I will provide an overview of TouchDevelop from a language, IDE, and runtime perspective, while diving into some of the novel techniques enabled by our particular platform.
- Sven-Bodo Scholz (Heriot-Watt University, Scotland): Partial Evaluation as Universal Compiler Tool (experiences from the SAC eco system)
Abstract Compilation of high-level languages, be they domain-specific ones or general purpose ones, typically entails rather sophisticated program analyses to facilitate extensive program manipulations and target architecture-specific code generation. This talk shows how several of these techniques can benefit vastly from the use of partial evaluation techniques; it reflects some of the experiences gained in the context of the ecosystem of compiler tools around the programming language SAC (Single Assignment C).
I describe how partial evaluation over the lifetime of the compiler development project has turned into a versatile tool that supports several aspects during the compilation, optimisation and code generation for SAC programs. At three concrete use scenarios in our toolchain: type inference, constraint resolution and application-specific code generation, I demonstrate the gains from partial evaluation. A discussion about limitations, further application potential and possible alternatives concludes the presentation.