Waterloo Programming Languages Seminars

Previous terms: W08 F07 W07 F06 S06 W06

Current term:

Date Speaker Title (click for abstract) Location
Fri. May 09, 2008 at 9:30 am Andrew Stevenson Aspect-Oriented Smart Proxies in Java RMI MC 5136
Fri. May 16, 2008 at 10:30 am Alan Leung Automatic Parallelization for Graphics Processing Units in JikesRVM DC 1304
Wed. Aug. 06, 2008 at 3:30pm Ralf Lämmel Grammar Synchronization EIT 3142

All are welcome.

Talk announcements are also posted to a public mailing list.

To volunteer to give a talk, contact Ondřej Lhoták. Talks can range from informal to formal, and they can be about any of the following:

The purpose is for us all to see what people are interested in, and motivate discussions.


Aspect-Oriented Smart Proxies in Java RMI

Andrew Stevenson
May 09, 2008
Java's Remote Method Invocation (RMI) architecture allows distributed applications to be written in Java. Clients can communicate with a server via a local proxy object that hides the network and server implementation details. This loosely coupled architecture makes it difficult for client-side enhancements, such as method caching and validation, to obtain useful information about server state and implementation. Statically-generated custom proxies can provide a limited solution, but are troublesome to deploy and cannot change dynamically at runtime. This thesis presents a framework for Java RMI smart proxies using a distributed aspect-oriented platform. The framework allows server-controlled dynamic changes to Java RMI proxy objects on the client, without requiring changes to the client application code or development cycle. The benefits of this framework are demonstrated with three practical examples: method caching, client-side input validation, and load balancing.

Automatic Parallelization for Graphics Processing Units in JikesRVM

Alan Leung
May 16, 2008
Accelerated graphics cards, or Graphics Processing Units (GPUs), have become ubiquitous in recent years. On the right kinds of problems, GPUs greatly surpass CPUs in terms of raw performance. However, GPUs are currently used only for a narrow class of special-purpose applications; the raw processing power available in a typical desktop PC is unused most of the time.

The goal of this work is to present an extension to JikesRVM that automatically executes suitable code on the GPU instead of the CPU. Both static and dynamic features are used to decide whether it is feasible and beneficial to off-load a piece of code on the GPU. Feasible code is discovered by an implementation of data dependence analysis. A cost model that balances the speedup available from the GPU against the cost of transferring input and output data between main memory and GPU memory has been deployed to determine if a feasible parallelization is indeed beneficial. The cost model is parameterized so that it can be applied to different hardware combinations.

We also present ways to overcome several obstacles to parallelization inherent in the design of the Java bytecode language: unstructured control flow, the lack of multi-dimensional arrays, the precise exception semantics, and the proliferation of indirect references.

Grammar Synchronization

Ralf Lämmel
Aug. 06, 2008
Consider the situation where grammar knowledge is scattered over different program and documentation artifacts. For instance, there may be a language documentation (such as a "standard") that contains fragments of the syntax definition as well as samples. There is probably a parser specification that unavoidably commits to the details and idiosyncrasies of a particular technology. In fact, there may be multiple parser specifications that either compete with each other or define (intentionally) slightly different versions of the language at hand, or different semantics thereof. Also, there may be descriptions of the language that do not assume concrete syntax but that use an object model, an XML schema, algebraic data types, and others. Likewise, samples may be scattered, and may surface in quite different forms. Obviously, one would want to make sure that all scattered manifestations of grammar knowledge are in sync. Also, one would like to maintain synchronized, scattered grammar knowledge along evolution of language documentations, parsers, XML schemas, and test harnesses. Ideally, synchronization should not overhaul the established practice of developing grammarware. To this end, we provide a method that is based on a number of grammar engineering techniques, most specifically automated transformations for grammar extraction and grammar abstraction. A proof of concept shows that the method meaningfully applies to a number of mainstream technologies for grammarware development. This is a joint work with Vadim Zaytsev from University of Koblenz-Landau.

Biography: Ralf Lämmel serves on the faculty of the Department of Computer Science at the University of Koblenz-Landau. He was appointed a professorship per 1 July 2007. Prior to this appointment, in the years 2005-2007, Ralf Lämmel was affiliated with Microsoft Corp., where he served on a research and development position with focus on XML technologies. In the years 2001-2004, he served on a permanent faculty position, at the Free University of Amsterdam, in the Software Engineering department, and he was also affiliated with the Dutch Center for Math and Computer Science (CWI) from 1999. Ralf Lämmel obtained his PhD in Computer Science (dissertation in programming theory) from the University of Rostock (Germany) in Dec 1998. Ralf Lämmel's speciality is "software language engineering" but he is generally interested in many themes of software engineering and programming. His research and teaching interests include program transformation, generative programming, programming languages, type systems, generic language technology, grammar-based methods, advanced separation of concerns, and automated software engineering. Ralf Lämmel has published approximately 60 peer-reviewed papers on the aforementioned subjects, and he has participated in numerous national and international collaborations and funded research projects on these subjects. In academic and industrial projects, He has designed, implemented, and deployed software development tools, migration tools and application generators. Ralf Lämmel participates in various international conferences as program committee member and as organizer. For instance, he has recently (co-) organized a Dagstuhl seminar on program transformation, and he is one of founding fathers of the int. summer school series on generative and transformational techniques.