[PRL] FW: PhD Thesis Defense, Doug Orleans, Monday, June 20

Karl Lieberherr lieber at ccs.neu.edu
Mon Jun 13 15:02:23 EDT 2005


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





More information about the PRL mailing list