Viewpoints Research Insitute recently began a five-year project to reinvent how we program and interact with computers. An early goal of our work is to make a practical, working mathematical model of a complete personal computer system that invites understanding and modification by users at all levels.
An essential part of the model is a programming language and environment that exhibit the properties desired of the system at large. In computer science terms, this language and environment are:
In this talk I will describe several significant aspects of the design and implementation of this programming environment. The foundation is a pair of mutually-supporting abstractions for behaviour and state. These abstractions are individually very simple and incapable of completely describing their own implementation. When combined, however, each abstraction provides all of the necessary `extrinsic magic' required for the other to describe itself.
The behavioural abstraction is inspired by McCarthy's rendering of LISP in LISP. In a half-page description, McCarthy created a recursive model that was small enough to be easily understandable and yet sufficiently complete to permit fruitful thinking about its meaning. In the spirit of McCarthy's LISP I will show how the abstraction for state in our system is modelled in terms of objects responding to messages, where the semantics of message sending are defined recursively in terms of objects responding to messages.
I will finish by describing of the remaining components of our programming system (from parsing to code generation) and the techniques that keep everything open, understandable and dynamically extensible by the user.
Links to References:
NSF Grant: Steps Toward The Reinvention of Programming | http://www.vpri.org/html/work/NSFproposal.pdf | |
An evolving whitepaper about the "combined object-lambda abstractions" | http://piumarta.com/papers/colas-whitepaper.pdf | |
A small paper describing just the object model in detail | http://piumarta.com/pepsi/objmodel.pdf |
Download the slides for this presentation in PDF format.
About the speaker:
Ian Piumarta is a computer scientist at Viewpoints Reseach Institute. He studied at the University of Manchester (UK) where he was awarded a B.Sc. followed by a Ph.D. for work on code generation techniques. After a couple of years as a post-doc at Manchester he moved to Paris to work at IRCAM. He then spent ten years working at INRIA and the University of Paris VI before moving to the United States and taking his current position at Viewpoints. He spends most of his time thinking about and implementing technologies for making computer languages more open, reflexive, dynamically self-describing and understandable. The rest of his time he spends listening to music, playing Bach on the guitar, building hi-fi equipment and flying airplanes.
Contact information:
Ian Piumarta
Viewpoints Research Institute
1209 Grand Central Ave
Glendale, CA
818 332 3001
ian@squeakland.org