[Pl-seminar] 3/16: Alley Stoughton, "A Functional Model-View-Controller Software Architecture for Command-oriented Programs"
Aaron Turon
turon at ccs.neu.edu
Mon Mar 14 00:44:26 EDT 2011
NEU Programming Languages Seminar presents
Alley Stoughton
Wednesday, 3/16
11:45am - 1:30pm
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)
Command-oriented functional programs are currently structured in an ad
hoc way that makes the development of multiple user-interfaces
difficult and error prone, and makes it difficult to abstractly
understand a program's command-oriented behavior. To rectify this, I
propose a software architecture for such programs called functional
model-view-controller (MVC), by a rough analogy with object-oriented
MVC. In functional MVC, a program is structured as a model
(domain-specific aspects), view (abstract user) and controller
(command loops). In contrast to object-oriented MVC, a controller is
active, consisting of a number of recursive functions. It calls its
view to get user input and to display results to the user; it calls
its model to do domain-specific work. To increase adaptability, a
controller should be parameterized by its model and view, using a
function or an ML-style functor. With this approach, one can write
terminal and graphical views; one can also write views that do
abstract scripting. One can understand and reason about a program's
command-oriented aspects at a high-level of abstraction by focusing on
the controller. Of particular note is the way computations of the
model can monitored and aborted by view. I will illustrate the
approach with a case study of a complete program, written in Standard
ML, and using Concurrent ML and the eXene X window system toolkit.
http://alleystoughton.us/crypto/
More information about the pl-seminar
mailing list