[Pl-seminar] Semantics Seminar Schedule
Mitchell Wand
wand at ccs.neu.edu
Tue Apr 22 11:46:22 EDT 2008
NU Programming Languages Seminar
Wednesday, April 23, 2008
11:45-1:30
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)
Bryan Chadwick
Removing Accidental Traversal Complexities from Programs
In this talk we present a functional traversal abstraction that
decomposes traversal computation into three sets of functions (or
function objects) and a traversal control function. Sets of
functions transform, combine values, and modify traversal arguments
over a generic traversal, while the control function allows
programmers to limit the extent of a traversal. A multiple dispatch
mechanism matches functions/methods to applicable types during data
structure traversal providing more flexible computation during
traversal, supporting multiple levels of generalization. Using the
generic traversal and matching we eliminate explicit accesses to the
underlying structure and reduce the need for traversal calls. The
resulting programs can be checked with respect to specific types
encountered during a traversal, resulting in programs that are safer
than previous imperative Adaptive Programming solutions.
Our new abstraction is supported by Java and Scheme libraries that
allow programmers to use functional and OOP techniques to develop
traversal related programs. The libraries provide a rich set of
default traversal behavior supporting SYB style transformations and
queries in addition to more complex (ad-hoc) computation. We
describe the traversal algorithm, functional decomposition, and its
usefulness using a few common examples in Scheme (BST and lambda
calculus related functions). Our Java Library, called DemeterF, has
been used in two graduate courses here at Northeastern (PPL and
Software Development), to reduce traversal complexity in
interpreters, type checkers, and CSP related algorithmic game
players.
================================================================
Upcoming Events:
No events scheduled. Come give a talk!
--Mitch
More information about the pl-seminar
mailing list