Skip to main content

An Embedded Language Approach to Router Specification in Curry

  • Conference paper
  • 428 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2932))

Abstract

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.

This work has been partially supported by CICYT TIC 2001-2705-C03-01, by the Generalitat Valenciana under grant CTIDIA/2002/205, and by the MCYT under grants HA2001-0059, HU2001-0019 and HI2000-0161.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Albert, E., Hanus, M., Vidal, G.: A Practical Partial Evaluation Scheme for Multi- Paradigm Declarative Languages. Journal of Functional and Logic Programming 2002 (2002)

    Google Scholar 

  2. Alpuente, M., Falaschi, M., Moreno, G., Vidal, G.: A Transformation System for Lazy Functional Logic Programs. In: Middeldorp, A. (ed.) FLOPS 1999. LNCS, vol. 1722, pp. 147–162. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  3. Claessen, K.: Embedded Languages for Describing and Verifying Hardware. PhD Thesis, Chalmers University of Technology and Gø̈teborg University, Department of Computing Science (2001)

    Google Scholar 

  4. Cousot, P., Cousot, R.: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Proc. of 4th ACM Symp. on Principles of Programming Languages, pp. 238–252 (1977)

    Google Scholar 

  5. Cousot, P., Cousot, R.: Systematic Design of Program Analysis Frameworks. In: Proc. of 6th ACM Symp. on Principles of Programming Languages, pp. 269–282 (1979)

    Google Scholar 

  6. Gottlieb, Y., Peterson, L.: A Comparative Study of Extensible Routers. In: 2002 IEEE Open Architectures and Network Programming Proceedings, pp. 51–62 (2002)

    Google Scholar 

  7. Hanus, M.: Distributed Programming in a Multi-Paradigm Declarative Language. In: Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, pp. 376–395. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  8. Hanus, M., Antoy, S., Koj, J., Sadre, R., Steiner, F.: PAKCS 1.5: The Portland Aachen Kiel Curry System User Manual. Technical report, University of Kiel, Germany (2003)

    Google Scholar 

  9. Hanus, M. (ed.): Curry: An Integrated Functional Logic Language, Available at, http://www.informatik.uni-kiel.de/~mh/curry/

  10. Kohler, E.: The Click Modular Router. PhD thesis, Massachusetts Institute of Technology (2001)

    Google Scholar 

  11. Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.: The Click Modular Router. ACM Transactions on Computer Systems 18, 263–297 (2000)

    Article  Google Scholar 

  12. Matthews, J.: Algebraic Specification and Verification of Processor Microarchitectures. PhD thesis, University of Washington (2000)

    Google Scholar 

  13. Moreno-Navarro, J., Rodríguez-Artalejo, M.: Logic Programming with Functions and Predicates: The language Babel. Journal of Logic Programming 12, 191–224 (1992)

    Article  MATH  Google Scholar 

  14. Peterson, L., Karlin, S., Li, K.: OS Support for General-Purpose Routers. In: Workshop on Hot Topics in Operating Systems (Hot-OS-VII), IEEE Computer Society Technical Committee on Operating Systems, pp. 38–43 (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ramos, J.G., Silva, J., Vidal, G. (2004). An Embedded Language Approach to Router Specification in Curry. In: Van Emde Boas, P., Pokorný, J., Bieliková, M., Štuller, J. (eds) SOFSEM 2004: Theory and Practice of Computer Science. SOFSEM 2004. Lecture Notes in Computer Science, vol 2932. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24618-3_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24618-3_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20779-5

  • Online ISBN: 978-3-540-24618-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics