Compiling PLAN to SNAP

  • Michael Hicks
  • Jonathan T. Moore
  • Scott Nettles
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2207)

Abstract

PLAN (Packet Language for Active Networks) [3] is a highly flexible and usable active packet language, whereas SNAP (Safe and Nimble Active Packets) [12] offers significant resource usage safety and achieves much higher performance compared to PLAN, but at the cost of flexibility and usability. Ideally, we would like to combine the good properties of PLAN with those of SNAP. We have achieved this end by developing a compiler that translates PLANi nto SNAP. The compiler allows us to achieve the flexibility and usability of PLAN, but with the safety and efficiency of SNAP. In this paper, we describe both languages, highlighting the features that require special compilation techniques. We then present the details of our compiler and experimental results to evaluate our compiler with respect to code size.

References

  1. 1.
    D. Scott Alexander, William A. Arbaugh, Michael Hicks, Pankaj Kakkar, Angelos Keromytis, Jonathan T. Moore, Carl A. Gunter, Scott M. Nettles, and Jonathan M. Smith. The SwitchWare active network architecture. IEEE Network, 12(3), 1998.Google Scholar
  2. 2.
    Giuseppe Di Fatta, Salvatore Gaglio, Giuseppe Lo Re, and Marco Ortolani. Adaptive routing in active networks. In Short paper session of the Third IEEE Conference on Open Architecturs and Network Programming, March 2000.Google Scholar
  3. 3.
    Michael Hicks, Pankaj Kakkar, Jonathan T. Moore, Carl A. Gunter, and Scott Nettles. PLAN: A Packet Language for Active Networks. In Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming Languages, pages 86–93. ACM, September 1998.Google Scholar
  4. 4.
    Michael Hicks and Angelos D. Keromytis. A secure PLAN. In Stefan Covaci, editor, Proceedings of the First International Working Conference on Active Networks, volume 1653 of Lecture Notes in Computer Science, pages 307–314. Springer-Verlag, June 1999.Google Scholar
  5. 5.
    Michael Hicks, Jonathan T. Moore, D. Scott Alexander, Carl A. Gunter, and Scott Nettles. PLANet: An active internetwork. In Proceedings of the Eighteenth IEEE Computer and Communication Society INFOCOM Conference, pages 1124–1133. IEEE, March 1999.Google Scholar
  6. 6.
    Michael Hicks, Jonathan T. Moore, and Scott Nettles. Dynamic software updating. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 13–23. ACM, June 2001.Google Scholar
  7. 7.
    Ulana Legedza and John Guttag. Using network-level support to improve cache routing. In Proceedings of the 3rd International WWW Caching Workshop, June 1998.Google Scholar
  8. 8.
    Ulana Legedza, David Wetherall, and John Guttag. Improving the Performance of Distributed Applications Using Active Networks. In Proceedings of the Seventeenth IEEE Computer and Communication Society INFOCOM Conference. IEEE, March 1998.Google Scholar
  9. 9.
    Paul Menage. RCANE: A Resource Controlled Framework for Active Network Services. In Stefan Covaci, editor, Proceedings of the First International Working Conference on Active Networks (IWAN’99), volume 1653 of Lecture Notes in Computer Science. Springer-Verlag, June 1999.Google Scholar
  10. 10.
    Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. MIT Press, 1990.Google Scholar
  11. 11.
    Jonathan T. Moore. Practical active packets. Dissertation Proposal, University of Pennsylvania, February 2001.Google Scholar
  12. 12.
    Jonathan T. Moore, Michael Hicks, and Scott Nettles. Practical Programmable Packets. In Proceedings of the Twentieth IEEE Computer and Communication Society INFOCOM Conference, pages 41–50. IEEE, April 2001.Google Scholar
  13. 13.
    Jonathan T. Moore, Michael Hicks, and Scott M. Nettles. Chunks in PLAN: Language support for programs as packets. In Proceedings of the 37th Annual Allerton Conference on Communication, Control, and Computing, September 1999.Google Scholar
  14. 14.
    Greg Morrisett, Karl Crary, Neal Glew, Dan Grossman, Richard Samuels, Frederick Smith, David Walker, Stephanie Weirich, and Steve Zdancewic. TALx86: A realistic typed assembly language. In Second Workshop on Compiler Support for System Software, Atlanta, May 1999.Google Scholar
  15. 15.
    Greg Morrisett, David Walker, Karl Crary, and Neal Glew. From System F to typed assembly language. ACM Transactions on Programming Languages and Systems, 21(3):527–568, May 1999.CrossRefGoogle Scholar
  16. 16.
    Beverly Schwartz, Alden W. Jackson, W. Timothy Strayer, Wenyi Zhou, R. Dennis Rockwell, and Craig Partridge. Smart packets: Applying active networks to network management. ACM Transactions on Computer Systems, 18(1), February 2000.Google Scholar
  17. 17.
    Li wei Lehman, Stephen J. Garland, and David L. Tennenhouse. Active Reliable Multicast. In Proceedings of the Seventeenth IEEE Computer and Communication Society INFOCOM Conference. IEEE, March 1998.Google Scholar
  18. 18.
    David J. Wetherall, John Guttag, and David L. Tennenhouse. ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols. In First IEEE Conference on Open Architectures and Network Programming. IEEE, April 1998.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Michael Hicks
    • 1
  • Jonathan T. Moore
    • 2
  • Scott Nettles
    • 3
  1. 1.Computer Science DepartmentCornell UniversityUSA
  2. 2.Computer and Information Science DepartmentUniversity of PennsylvaniaUSA
  3. 3.Electrical and Computer Engineering DepartmentThe University of Texas at AustinUSA

Personalised recommendations