Spidle: A DSL Approach to Specifying Streaming Applications

Multimedia stream processing is a rapidly evolving domain which requires much software development and expects high performance. Developing a streaming application often involves low-level programming, critical memory management, and finely tuned scheduling of processing steps.To address these problems, we present a domain-specific language (DSL) named Spidle, for specifying streaming applications. Spidle offers high-level and declarative constructs; compared to general-purpose languages (GPL), it improves robustness by enabling a variety of verifications to be performed.To assess the expressiveness of Spidle in practice, we have used it to specify a number of standardized and special-purpose streaming applications. These specifications are up to 2 times smaller than equivalent programs written in a GPL such as C.We have implemented a compiler for Spidle. Preliminary results show that compiled Spidle programs are roughly as efficient as the compiled, equivalent C programs.

[1]  Luigi Rizzo,et al.  On the feasibility of software FEC , 1997 .

[2]  Charles Consel,et al.  A Domain Specific Language for Video Device Drivers: From Design to Implementation , 1997, DSL.

[3]  Charles Consel,et al.  A framework for application generator design , 1997, SSR '97.

[4]  Maya Gokhale,et al.  Stream-oriented FPGA computing in the Streams-C high level language , 2000, Proceedings 2000 IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00871).

[5]  Laurent Réveillère,et al.  A DSL approach to improve productivity and safety in device drivers development , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[6]  Robert Stephens,et al.  A survey of stream processing , 1997, Acta Informatica.

[7]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[8]  Hugh Glaser,et al.  Principles of Declarative Programming , 1998, Lecture Notes in Computer Science.

[9]  Charles Consel,et al.  Architecture Software Using: A Methodology for Language Development , 1998, PLILP/ALP.

[10]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[11]  Laurent Réveillère,et al.  Devil: an IDL for hardware programming , 2000, OSDI.

[12]  Charles Consel,et al.  Safe and efficient active network programming , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[13]  Allen R. Hanson,et al.  Computer Vision Systems , 1978 .

[14]  Calton Pu,et al.  Infopipes for composing distributed information flows , 2001, M3W.

[15]  Bruce A. Draper,et al.  Sassy: A Language and Optimizing Compiler for Image Processing on Reconfigurable Computing Systems , 1999, ICVS.