November 18, 1998 Meeting
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.
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).
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.
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 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.
A translation of regions to polymorphic lambda calculus
4:00pm Talks End
Luke Hornof /
University of Pennsylvania /