Applying to Georgia Tech

Anthony Hannan ajh18 at cornell.edu
Sat Dec 14 10:18:01 UTC 2002


Here's a new version of my Statement of Purpose, any comments?

Statement of Purpose

My goal is a persistent world-wide-web of objects that concurrent users
with adequate permission can interact with directly.  It would be
equivalent to a shared global Smalltalk image with security and
versions/perspectives.  Isolated "applications" would not be built,
instead objects and behavior would be added.  The power and flexibility
of a simple and speakable programming language would be available to the
user.  The user interface would organize variables and contexts, present
anticipated commands, and help the user capture patterns to abstract and
reuse.

I took a self-financed, year-and-a-half sabbatical to evolve Squeak, the
open-source Smalltalk, towards this goal.  I broke down the work into
the following projects:

Block Closures:  I converted blocks to true closures so they can be
distributed independent of their home method.  At the same time I sped
up execution and added continuations.  This work involved creating a new
bytecode set, writing an optimizing Smalltalk-to-bytecode compiler, and
converting heap allocated contexts to stack frames, while preserving the
semantics of malleable contexts in Smalltalk.

Versions:  I researched perspectives/layers and developed a concept of
environments based on Us (subjective Self).  Each process runs with
respect to an environment and global variables and class pointers are
looked up in the environment's hierarchy.

Distributed Objects:  Young objects that are only reachable from the
arguments of a remote message are sent along with the message. 
Searching young space (incremental GC) was quick.  Environments are
replicated across communicating machines so they operate using the same
version.

Security:  An environment represents a user's usable behavior.  An
environment may inherit from, or spawn a process in, another environment
only if permitted.  Some research uses annotated types in the language
to secure information flow from end-to-end.  I am interested in securing
dynamic objects without static type information, using environments and
encapsulation.

Concurrency, persistence, user interface, and speakable programming
language still needs to be worked on, as well as more research into
distributed objects and security.  I started my sabbatical rather naive
about the complexity of my goal.  Now I realize it needs much more
research.  I want to pursue these many areas of research at Georgia Tech
because of its strong interdisciplinary culture and its involvement with
Squeak.



More information about the Squeak-dev mailing list