SOFSEM 2004: Theory and Practice of Computer Science

Volume 2932 of the series Lecture Notes in Computer Science pp 277-288

An Embedded Language Approach to Router Specification in Curry

  • J. Guadalupe RamosAffiliated withInstituto Tecnológico de La Piedad
  • , Josep SilvaAffiliated withDSIC, UPV
  • , Germán VidalAffiliated withDSIC, UPV

* Final gross prices may vary according to local VAT.

Get Access


The development of modern routers require a significant effort to be designed, built, and verified. While hardware routers are faster, they are difficult to configure and maintain. Software routers, on the other hand, are slower but much more flexible, easier to configure and maintain, less expensive, etc. Recently, a modular architecture and toolkit for building software routers and other packet processors has been introduced: the Click system. It includes a specification language with features for declaring and connecting router elements and for designing abstractions.

In this work, we introduce the domain-specific language Rose for the specification of software routers. Rose is embedded in Curry, a modern declarative multi-paradigm language. An advantage of this approach is that we have available a framework where router specifications can be transformed, optimized, verified, etc., by using a number of existing formal techniques already developed for Curry programs. Furthermore, we show that the features of Curry are particularly useful to specify router configurations with a high-level of abstraction. Our first experiments point out that the proposed methodology is both useful and practical.