November 18, 1998 Meeting

10:00am Riccardo Pucella: IDL and interoperability with SML/NJ

IDL is a standard language to describe interfaces to components, including libraries, with a syntax close to C. We show how we can automatically derive from an IDL description of a library the SML code required to interface to that library. We describe different translation modes, both low-level and high-level, and extensions to handle component-based interfaces, such as COM.

10:45am John Reppy: The design of the Moby object system

Moby is an experiment in language design. It is a ML-style language that also supports object-oriented and concurrent programming idioms. In this talk, I give a brief overview of Moby's design and then focus on its object-oriented features. Moby supports object-oriented programming using a combination of ML-style modules, a minimal class mechanism, and primitive object types. Our design philosophy has been to try to keep language features independent, but complementary. Moby's support for class-based object-oriented programming is a prime example of this: classes provide support for object creation and inheritance, but we rely on the module system for information hiding and on object types for subtyping. The resulting design is both simple and expressive.

This is joint work with Kathleen Fisher (AT&T Labs) and Jon Riecke (Bell Labs).

11:30pm Lunch

1:15pm Ramkrishna Chatterjee: Relevant Context Inference

Relevant context inference (RCI) is a modular technique for flow- and context-sensitive data-flow analysis of statically typed object-oriented programming languages such as C++ and Java. RCI can be used to analyze complete programs as well as incomplete programs such as libraries; this approach does not require that the entire program be memory-resident during the analysis. We also show that RCI can handle exceptions. RCI is presented in the context of points-to analysis. The empirical evidence obtained from a prototype implementation argues the effectiveness of RCI.

NOTE: to appear in POPL'99.

2:00pm Mary Fernandez: StruQL: A declarative query language for specifying web sites

StruQL is a declarative language for querying and constructing graph-structured data and is the central component of Strudel, a Web-site management system. Strudel addresses the problems of creating and maintaining ``data-intensive'' Web sites, i.e., sites that integrate information from multiple and diverse sources. If time permits, I will give a short demo of Strudel.

My talk will focus on StruQL: how it is used to specify declaratively the content and structure of a Web site and how StruQL queries are evaluated to produce a site. I will also describe the recent addition of functions to StruQL. StruQL functions increase query-code reuse and modularize otherwise monolithic queries. StruQL's query engine supports both eager and lazy evaluation of functions.

Functions also serve as a natural abstraction for specifying various site-generation strategies. Most sites are generated dynamically, i.e., pages are generated on-the-fly at ``click time''. In data-intensive Web sites, it is often desirable to consider other strategies, such as statically precomputing the complete site, or mixing statically and dynamically generated pages. StruQL's functions are a flexible mechanism for exploring various site-generation strategies.

2:45pm Break

3:15pm Jon Riecke: A translation of regions to polymorphic lambda calculus

4:00pm Talks End

Luke Hornof / University of Pennsylvania / hornof@cis.upenn.edu