dougo: (Default)
([personal profile] dougo Jun. 15th, 2005 09:28 pm)
I'm still pretty much in hermit mode, but I am emerging for a moment to post the announcement for my thesis defense on Monday. It's an open presentation, but I don't do well with public speaking and to be honest I'd be more comfortable if nobody showed up. Still, some of you explicitly asked me to keep you informed, so here it is:

College of Computer and Information Science
Northeastern University, Boston

PhD Thesis Defense:
Doug Orleans

Title:
PROGRAMMING LANGUAGE SUPPORT FOR SEPARATION OF CONCERNS

Monday, June 20, 2005
2:00pm
366 West Village H

Abstract:

The Socrates programming language unifies and generalizes object-oriented and aspect-oriented language mechanisms that support separation of concerns. In particular, methods and advice can be viewed as special cases of the same general mechanism: units of behavior that specify what to do (the body) and when to do it (the predicate). A program in the Socrates core language consists of messages, representing abstract operations, and branches, representing concrete units of behavior that implement parts of one or more operations. Both the body and the predicate of a branch can be unrestricted procedures, allowing the program code to be flexibly organized by concern, rather than only by type or operation. Precedence between branches whose predicates overlap is determined by logical implication analysis (a generalization of inheritance-based object-oriented precedence rules) plus mechanisms for overriding this default precedence relation (to support crosscutting behavior). Socrates also provides layers of abstraction on top of these primitive constructs to emulate features of other languages, including multimethods, generalized open classes, pointcuts and advice, structural pattern matching, classifiers, and composition filters.

Socrates is implemented as a language embedded in PLT Scheme, so that Socrates code and Scheme code can be freely intermixed; in addition, messages are Scheme procedures and branches are first-class values that can be dynamically added to and removed from the global dispatch table. This dissertation presents the specification of this embedding, as well as a case study of a non-trivial GUI application implemented in Socrates, a formulation of the Law of Demeter for Socrates including a Socrates program to dynamically check for violations, and a partial-evaluator-based algorithm to analyze predicate implication. The Socrates implementation is a free software project on SourceForge (http://socrates-lang.sf.net/). The thesis is also available on SourceForge.

Thesis committee:
Karl Lieberherr (advisor)
Mitchell Wand
Greg Sullivan, BAE Systems

After the defense, I still have more revisions to make on the dissertation, so I'm not likely to be done until the end of July. But the end is nearing.

Also, last weekend I went down to South Jersey for my dad's retirement party, and we visited a geocache in Berlin Park where my dad worked for 26 years. I added a log entry, including some pictures.

From: [identity profile] prusik.livejournal.com


I know what you mean about being more comfortable if no one showed up.

I'm glad to hear that the process is finally working its way to the end.

Knock 'em dead at your defense!

From: [identity profile] rawrin.livejournal.com


If I were to show up, you could rest easy knowing that I wouldn't understand any of it.

From: (Anonymous)

How did it go?


Do post, when you are done. Don't keep us in suspense.
.