Applying to Georgia Tech

Anthony Hannan ajh18 at cornell.edu
Sat Dec 14 17:38:49 UTC 2002


Here's my final version of my Statement of Purpose that I sent out
today.  A special thanks goes to Joshua, Bryce, and Noel for their
helpful input.

Cheers,
Anthony

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 from the same
perspective.

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 by using environments
and encapsulation.

Concurrency, persistence, user interface, and speakable programming
language still needs to be addressed, as well as more research into
distributed processing/partitioning, and security.

I started my sabbatical rather naïve about the complexity of my goal. 
Now I realize it needs much more research in many areas.  I want to
pursue these many areas of research at Georgia Tech because of its
strong interdisciplinary culture and its involvement with Squeak.  I
would like to work with Mark Guzdial's group, continue being an active
member of the Squeak community, and join the larger research community
at Georgia Tech and the world, in pursuit of an intelligent,
knowledgeable web.  For more info about me, please see my website at
http://minnow.cc.gatech.edu/squeak/AnthonyHannan.



More information about the Squeak-dev mailing list