| |
Abstract
We describe the transformation of XVision, a large library of C++ code
for real-time vision processing, into FVision (pronounced ``fission''),
a fully-featured domain-specific language embedded in Haskell. The resulting
prototype system substantiates the claims of increased modularity, effective
code reuse, and rapid prototyping that characterize the DSL approach
to system design. It also illustrates the need for judicious interface
design: relegating computationally expensive tasks to XVision (pre-existing
C++ components), and leaving modular compositional tasks to FVision
(Haskell). At the same time, our experience demonstrates how Haskell's
advanced language features (specifically parametric polymorphism, lazy
evaluation, higher order functions and automatic storage reclamation)
permit a rapid DSL design that is itself highly modular and easily modified.
Overall, the resulting hybrid system exceeded our expectations: visual
tracking programs continue to spend most of their time executing low
level image-processing code, while Haskell's advanced features allow
us to quickly develop and test small prototype systems within a matter
of a few days and to develop realistic applications within a few weeks.
@Inproceedings(RePeHuHa99, Author = "A. Reid and J. Peterson and P. Hudak and G. Hager", Title = "Prototyping Real-Time Vision Systems: An Experiment in DSL Design", BookTitle = "Proceedings of ICSE 99: Intl. Conf. on Software Engineering", Month = "May", Year = 1999 )
Download
|