Generative Programming: Concepts and Experiences

Joint GPCE/SLE Keynote


Programming Cloud-connected Mobile Devices

Nikolai Tillmann (Microsoft Research)

We are experiencing a technology shift: Powerful and easy-to-use mobile devices like smartphones and tablets are becoming more prevalent than traditional PCs and laptops. Mobile devices are going to be the first and, in less developed countries, possibly the only computing devices which virtually all people will own and carry with them at all times. Such devices are connected to the cloud most of the time, providing a local view on distributed data. Are the programming languages, environments and paradigms that have served us well for decades the best possible fit for this new world of cloud-connected devices? In this talk, I will present TouchDevelop, a modern software development environment that we have designed from the ground up to fit the new reality. TouchDevelop comes with typed, structured programming language that is built around the idea of only using a touchscreen as the input device to author code. Access to shared data in the cloud, flexible user interfaces, and sensors such as accelerometer and GPS are available as a first-class citizens in the programming language. The TouchDevelop programming environment is available as a web app on Windows tablets, iOS, Android, Windows PCs and Macs, and as a native app on Windows Phone.

Nikolai Tillmann is a Principal Development Lead at Microsoft, Redmond. His main areas of research are program authoring on mobile devices, program analysis, testing, optimization, and verification. At Microsoft Research, he started TouchDevelop, a cross-platform development environment which enables end-users to write programs for mobile devices on mobile devices; try it for yourself at He also leads the Pex project, a framework for runtime verification and automatic test case generation for .NET applications based on parameterized unit testing and dynamic symbolic execution. Try out Pex on the web at, or play a coding game based on the Pex engine at Nikolai has a Dipl. Inf. in Computer Science from TU Berlin, Germany.

Joint GPCE/SLE Keynote


From Language Engineering to Viewpoint Engineering

Colin Atkinson (University of Mannheim)

As software systems increase in size and complexity, and are expected to cope with ever more quantities of information from ever more sources, there is an urgent and growing need for a more view-oriented approach to software engineering. Views allow stakeholders to see exactly the right information, at exactly the right time, in a way that best matches their capabilities and goals. However, this is only possible if the information is represented in the optimal languages (i.e. domain- and purpose-specific), with the necessary context information and the optimal manipulation/editing features - that is, if information is viewed from the optimal viewpoints. Rather than merely engineering languages, therefore, software engineers in the future will need to engineer viewpoints, which augment language definitions (e.g. meta-models, syntax ...) with context information (e.g. elision, location, perspective ...) and user-interaction information (e.g. editing pallets, view manipulation services ...). In this talk Colin Atkinson will outline the issues faced in supporting the flexible and efficient engineering of viewpoints and will present some key foundations of a fundamentally view-oriented approach to software engineering.

Colin Atkinson has been the leader of the Software Engineering Group at the University of Mannheim since April 2003. Before that he has held positions at the University of Kaiserslautern, the Fraunhofer Institute for Experimental Software Engineering and the University of Houston - Clear Lake. His research interests are focused on the use of model-driven and component based approaches in the development of dependable and adaptable computing systems. He was a contributor to the original UML development process and is one of the original developers of the deep (multi-level) approach to conceptual modelling. He received his Ph.D. and M.Sc. in computer science from Imperial College, London, in 1990 and 1985 respectively, and his B.Sc. in Mathematical Physics from the University of Nottingham 1983.