Prototyping Real-Time Vision Systems - An Experiment in DSL Design
Alastair Reid, John Peterson, Gregory D. Hager, Paul Hudak
Yale University
[pdf]
[doi]
Proceedings of the 1999 International Conference on Software Engineering (ICSE '99)
Los Angeles, CA, USA
May 1999
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.
BibTeX
@inproceedings{DBLP:conf/icse/ReidPHH99
, 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.
}
, acceptance = {19}
, affiliation = {Yale University}
, ar_file = {ICSE_99}
, ar_shortname = {ICSE 99}
, author = {Alastair Reid and
John Peterson and
Gregory D. Hager and
Paul Hudak}
, booktitle = {Proceedings of the 1999 International Conference on Software Engineering
(ICSE '99)}
, day = {16-22}
, doi = {10.1109/icse.1999.841038}
, editor = {Barry W. Boehm and
David Garlan and
Jeff Kramer}
, file = {fvision-icse99-2.pdf}
, location = {Los Angeles, CA, USA}
, month = {May}
, pages = {484--493}
, png = {fvision-icse99-2.png}
, publisher = {ACM}
, title = {{P}rototyping {R}eal-{T}ime {V}ision {S}ystems: {A}n {E}xperiment in {D}SL {D}esign}
, year = {1999}
}