List of Technology Presentations
The purpose of the technology presentations is to supplement the theoretical knowledge acquired in the regular tutorials with practical knowledge of how generative and transformational techniques can be instrumental in solving software engineering problems. These presentations may include a mix of problem statement, foundations, running example, fundamental concepts, tool support, and software engineering issues. Compared to the regular tutorial lectures, these presentations are typically shorter, slightly more informal and interactive, and more focused on automated software engineering.
- Scott Blum, Google, USA: Optimizing Monolithic Compilation in the Google Web Toolkit
- Robert M Fuhrer, IBM T.J. Watson Research, USA: SAFARI: Meta-Tooling for Language-Specific IDE's in Eclipse
- Dragan Gasevic, Athabasca University, Canada: Model-Driven Engineering of Rules for Web Services
- Pierre-Etienne Moreau, INRIA/LORIA Nancy, France: Implementing Program Transformations with Tom and Java
- Eric Van Wyk, University of Minnesota, USA: Building composable domain-specific language extensions for Java
- Perdita Stevens, University of Edinburgh, UK: Bidirectional model transformations
- Laurence Tratt, King's College, UK: Techniques for lightweight DSL development in Converge
- Robert Hirschfeld, HPI, Germany: Modularizing Context-dependent Behavioral Variations with Context-oriented Programming
Scott Blum, Google, USA: Optimizing Monolithic Compilation in the Google Web Toolkit
Abstract: Google Web Toolkit's Java-to-JavaScript compiler begins with the
premise that all source code is monolithically compiled into a single
hermetic executable. This premise, it turns out, unlocks a slew of
optimizations that would be impossible in a traditional compilation
model. This session is not a presentation of GWT itself, but rather a
high level exploration of the optimization techniques already
implemented as well as future optimizations made possible by a
monolithic compile.
Bio: Scott Blum has been a software engineer on the Google Web Toolkit team
since 2005. He focuses on the Java-to-JavaScript compiler and hosted
mode browser integration. He's also a big fan of Java and a bigger fan
of Eclipse, the leading cause of dust gathering on his C++ books.
Before coming to Google, Scott worked for several years on mobile
software development tools. His work has included compilers, virtual
machines, OO frameworks, and all manner of hackery.
Slides:
pdf.
Robert M Fuhrer, IBM T.J. Watson Research, USA: SAFARI: Meta-Tooling for Language-Specific IDE's in Eclipse
Abstract:
Building a state-of-the-art IDE for a new programming language is a
difficult undertaking. Although much of this work is inevitable and
requires an in-depth understanding of the language structure and semantics,
a significant portion embodies common themes and code structures, and
requires extensive knowledge of framework API's, which represent a great
opportunity for code and knowledge reuse in the form of a meta-tooling
framework for IDE development. In this talk, we will describe SAFARI, an
ongoing project at IBM Watson Research to develop such meta-tooling for
Eclipse.
Bio:
Robert
has spent the last several years developing static analyses and
advanced refactorings for Java in Eclipse, some of which are now part of
the Eclipse JDT, including generics-related refactorings for Java 5,
type-related refactorings, and others. Robert also developed a smell
detection framework for Java in Eclipse, which includes a code duplication
detector. Prior to that, Robert worked on a diverse set of projects,
including two visual programming languages, a film scoring system,
manufacturing optimization algorithms, and hardware synthesis and
verification for asynchronous circuits.
Slides:
pdf.
Dragan Gasevic, Athabasca University, Canada: Model-Driven Engineering of Rules for Web Services
Abstract: Web services are proposed as a way that should enable for
loosely-coupled integration of business processes of different
stakeholders. This requires effective development mechanisms that
focus on the modeling of business processes rather than on low-level
implementation details of Web services, and yet to support frequent
business changes especially in policy-driven systems. This talk
presents the UML-based Rule Language that uses reaction rules (aka
Event-Condition-Action, ECA, rules) for modeling business processes in
terms of message exchange patterns. The approach is supported by a
Fujaba plug-in and a number of model transformations for round-trip
engineering of Web services.
Bio:
Dragan Gasevic is an Assistant Professor in the School of
Computing and Information Systems at Athabasca University and is an
Adjunct Professor at Simon Fraser University in Canada. His research
interests include the Semantic Web, model-driven software engineering,
knowledge management, service-oriented architectures, and learning
technologies. So far, he has authored/co-authored around 150 research
papers and book chapters, and 2 books. He is the lead author of the
book Model Driven Architecture and Ontology Development. He has been
severing on the editorial/reviewing boards and organizing/program
committees of many international journals, conferences, and workshops.
Slides:
pdf.
Pierre-Etienne Moreau, INRIA/LORIA Nancy, France: Implementing Program Transformations with Tom and Java
Abstract: Tom is an extension of Java designed to easily implement program
transformations, using the notions of rules and strategies.
In this presentation we will show how this approach can be applied to
the analysis and transformation of Java bytecode programs.
Bio:
Pierre-Etienne Moreau is researcher at LORIA/INRIA Lorraine in
the Protheo team. His main research activity consists in conceiving
tools and languages that help to write complex applications, by
decreasing the development time and increasing the confidence. In
this direction, he has developed during his thesis a compiler for the
ELAN language. Since 2001, he is managing the development of the Tom
system, which allows to integrate the notions of equational matching,
rule based programming, and strategic programming in languages like
Java. The main applications of Tom are the implementation of
compilers, program analysis and transformation tools, as well as
automatic provers.
Slides:
pdf.
Eric Van Wyk, University of Minnesota, USA: Building composable domain-specific language extensions for Java
Abstract: Extensible languages allow programmers to import new language features
that provide new syntax, semantic analysis, and optimizations into
their programming language. For example, a programmer may import into
an extensible implementation of Java an extension that embeds SQL for
type-safe data-base queries. Language extensions that define these
features should be composable so that programmers can import multiple
extensions that address different aspects of their programming
problem. We show how such extensible languages and extensions have
been created using Silver, an attribute grammar specification
language, and AbleJ, an extensible specification of Java written in
Silver.
Bio:
Eric Van Wyk is an Assistant Professor in the Computer Science and
Engineering department at the University of Minnesota. He received
his Ph.D. from the University of Iowa in 1998 and was a post-doctoral
researcher in the Computing Laboratory at the University of Oxford
before joining the University of Minnesota in 2002. He is a 2005-2007
McKnight Land-Grant Professor and the recipient of an NSF CAREER
Award. His research interests include extensible programming and
specification languages as well as techniques for their declarative
specification and implementation.
Slides:
pdf.
Perdita Stevens, University of Edinburgh, UK: Bidirectional model transformations
Abstract: Tool support for model transformations is key to the success of model
driven development. The OMG standard on Queries, Views and
Transformations (QVT) specifies how to write transformations.
Practitioners often genuinely need to be able to edit the models at
either end of the transformation, while "keeping the models in sync":
that is, they need bidirectional transformations. Supporting this
fully goes beyond the state of the art of both tools and theory. I
will introduce QVT and model transformation tools, before discussing
current work building on that of the Harmony team led by Benjamin
Pierce at the University of Pennsylvania.
Bio:
Perdita Stevens
is a Reader in Software Engineering at the University
of Edinburgh's School of Informatics. She has been interested in
modelling for many years, writing the first student textbook on UML
(Using UML) and later writing on the implications of the XMI standard
for developer-written model transformations. She is particularly
interested in how tools and technologies can support the process of
software design. She has recently finished a term as Steering
Committee Chair of ETAPS, the European Joint Conferences on Theory and
Practice of Software, and has also chaired the UML (now MODELS)
conference.
Slides:
pdf.
Laurence Tratt, King's College, UK: Techniques for lightweight DSL development in Converge
Abstract: While the concept of domain specific languages continues to gain in
popularity and importance, the means we have at our disposal to create
them often don't reflect the way we wish to use them. DSLs tend to
start small, yet the tools we use to implement them often lead to
surprisingly large and cumbersome implementations. DSLs tend to evolve
in unforeseen ways, yet our implementations often have a "hackish"
feel that makes change difficult.
In this talk I will introduce the Converge programming language, which
has a simple facility which allows arbitrary syntaxes to be embedded
in normal Converge code. This allows DSLs to be quickly implemented
and experimented with. I will show how Converge facilitates a process
for creating DSLs, and discuss some of our experiences with creating
Converge DSLs.
Bio:
Laurence Tratt
is a researcher in the Department of Computer Science
at King's College London, where he is co-leader of the Software and
Systems Modelling Team. He is also the chief designer and maintainer
of the Converge programming language, and has been a major contributor
to several international standards related to modelling. He is a
member of the IEEE Software Advisory Board.
Slides:
pdf.
Robert Hirschfeld, HPI, Germany: Modularizing Context-dependent Behavioral Variations with Context-oriented Programming
Abstract: Context-oriented Programming, or COP, provides programmers with dedicated abstractions and mechanisms to concisely represent behavioral variations that depend on execution context. By treating context explicitly, and by directly supporting dynamic composition, COP allows programmers to better express software entities that adapt their behavior late-bound at runtime. Our presentation will illustrate COP constructs, their application, and their implementation, as well the relationship of COP to other approaches such as feature-oriented and aspect-oriented programming. We use Squeak as a programming environment to demonstrate sample scenarios.
Bio:
Robert Hirschfeld is a Professor of Computer Science at the Hasso-Plattner-Institut in Potsdam. There he leads the Software Architecture Group that is concerned with fundamental elements and structures of software, developing methods and tools for improving the comprehension and design of complex systems. Robert Hirschfeld was a senior researcher with DoCoMo Euro-Labs, the European research facility of NTT DoCoMo Japan, where he worked on infrastructure components for next generation mobile systems with a focus on dynamic service adaptation and aspect-oriented programming. Prior to joining Euro-Labs, he was a principal engineer at Windward Solutions in Sunnyvale, California. Robert Hirschfeld received a Ph.D. in Computer Science form the Technical University of Ilmenau, Germany.
Slides:
pdf.