Refreshments 2:00p.m.
Abstract
This talk is in two halves. In the first, we consider two problems with
virtual machine-based language runtimes. Specifically, foreign function
interfacing is needlessly difficult, and meanwhile, tools such as debuggers,
profilers etc., being per-VM infrastructure, create analogous difficulties for
developers hitting VM-native or VM-VM boundaries. Our focus is on dynamic
languages; specifically, we describe DwarfPython, an implementation of Python
which aims to overcome both of these problems through some unusual design
choices. Central among these is the adoption of a unifying descriptive
metamodel based on native debugging infrastructure.
In the second half, I will argue "virtual" execution environments may be more
accurately considered as performing "augmented execution." From this
observation, and by reconsidering the boundaries between dynamic and static
analyses, I will suggest some apparently new points in the various trade-offs
around both execution strategies and analysis techniques. This half is highly
speculative, and discussion will be particularly welcomed!
BIO
Stephen Kell is a postdoctoral research assistant at the University of Oxford.
His interests span operating systems, the design and implementation of
programming languages, bug-finding and verification techniques for software,
and other areas. During 2005-10 he was at the University of Cambridge in the
Networks and Operating Systems group. His PhD centered on Cake, a
special-purpose language for adapting between mismatched software interfaces at
the object-code level. Since moving to the Verification group in Oxford he has
been trying to learn something about program analysis and verification, while
retaining a practical focus on programming and tools.