Prototyping real-time vision systems: An experiment in DSL design

Alastair Reid, John Peterson, Gregory Hager, Paul Hudak

Research output: Chapter in Book/Report/Conference proceedingChapter

Abstract

We describe the enhancement 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.

Original languageEnglish (US)
Title of host publicationProceedings - International Conference on Software Engineering
PublisherIEEE
Pages484-493
Number of pages10
StatePublished - 1999
Externally publishedYes
EventProceedings of the 1999 International Conference on Software Engineering - Los Angeles, CA, USA
Duration: May 16 1999May 22 1999

Other

OtherProceedings of the 1999 International Conference on Software Engineering
CityLos Angeles, CA, USA
Period5/16/995/22/99

Fingerprint

DSL
Reclamation
Rapid prototyping
Polymorphism
Hybrid systems
Image processing
Experiments
Systems analysis
Processing

ASJC Scopus subject areas

  • Software

Cite this

Reid, A., Peterson, J., Hager, G., & Hudak, P. (1999). Prototyping real-time vision systems: An experiment in DSL design. In Proceedings - International Conference on Software Engineering (pp. 484-493). IEEE.

Prototyping real-time vision systems : An experiment in DSL design. / Reid, Alastair; Peterson, John; Hager, Gregory; Hudak, Paul.

Proceedings - International Conference on Software Engineering. IEEE, 1999. p. 484-493.

Research output: Chapter in Book/Report/Conference proceedingChapter

Reid, A, Peterson, J, Hager, G & Hudak, P 1999, Prototyping real-time vision systems: An experiment in DSL design. in Proceedings - International Conference on Software Engineering. IEEE, pp. 484-493, Proceedings of the 1999 International Conference on Software Engineering, Los Angeles, CA, USA, 5/16/99.
Reid A, Peterson J, Hager G, Hudak P. Prototyping real-time vision systems: An experiment in DSL design. In Proceedings - International Conference on Software Engineering. IEEE. 1999. p. 484-493
Reid, Alastair ; Peterson, John ; Hager, Gregory ; Hudak, Paul. / Prototyping real-time vision systems : An experiment in DSL design. Proceedings - International Conference on Software Engineering. IEEE, 1999. pp. 484-493
@inbook{a0c3317b753147cb9ed6360ba199a8b8,
title = "Prototyping real-time vision systems: An experiment in DSL design",
abstract = "We describe the enhancement 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.",
author = "Alastair Reid and John Peterson and Gregory Hager and Paul Hudak",
year = "1999",
language = "English (US)",
pages = "484--493",
booktitle = "Proceedings - International Conference on Software Engineering",
publisher = "IEEE",

}

TY - CHAP

T1 - Prototyping real-time vision systems

T2 - An experiment in DSL design

AU - Reid, Alastair

AU - Peterson, John

AU - Hager, Gregory

AU - Hudak, Paul

PY - 1999

Y1 - 1999

N2 - We describe the enhancement 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.

AB - We describe the enhancement 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.

UR - http://www.scopus.com/inward/record.url?scp=0032668897&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0032668897&partnerID=8YFLogxK

M3 - Chapter

AN - SCOPUS:0032668897

SP - 484

EP - 493

BT - Proceedings - International Conference on Software Engineering

PB - IEEE

ER -