Abstract
Abstract
Existing programming environments (i.e., languages,
libraries, and
operating systems) do not
adequately support the complex applications
that programmers want to build. The
programmer is confronted with an
every-growing collection of leaky,
fragile abstractions that don't
provide what is wanted. Development
cost is too high and applications
are not trustworthy.
My group is working on four ongoing projects that tackle
different
aspects of this larger problem:
* Swift: a uniform
programming framework for secure web applications.
Web application
computation and data are automatically split among the
tiers.
For example, part of the web application can be run on the
client
browser as Javascript. The trick is to do this
without
compromising
security.
* Diaspora: a
distributed platform for secure, reliable, consistent
sharing
of information and computation. This system will allow easy
cooperation
between mutually distrusting parties.
* J&: a language
that supports scalable, modular extensibility.
Extensible systems
written in J& can be composed even when they
overlap. For example, composing two compilers combines
supported
language
features.
* CIVS: the first
secure Internet voting service. We are designing
cryptographic
protocols and using information flow to obtain
assurance that system components are secure.