Plan in Maude: Specifying an Active Network Programming Language

PLAN is a language designed for programming active networks, and can more generally be regarded as a model of mobile computation. PLAN generalizes the paradigm of imperative functional programming in an elegant way that allows for recursive, remote function calls, and it provides a clear mechanism for the interaction between host and mobile code. Techniques for specifying and reasoning about such languages are of growing importance. In this paper we describe our specification of PLAN in the rewriting logic language Maude. We show how techniques for specifying the operational semantics of imperative functional programs (syntax-based semantics) and for formalizing variable binding constructs and mobile environments (CINNI calculus) are used in combination with the natural representation of concurrency and distribution provided by rewriting logic to develop a faithful description of the informal PLAN semantics. We also illustrate the wide-spectrum approach to formal modeling supported by Maude: executing PLAN programs; analyzing PLAN programs using search and model-checking; proving properties of particular PLAN programs; and proving general properties of the PLAN language.

[1]  Michael Hicks,et al.  Chunks in PLAN: Language Support for Programs as Packets , 1999 .

[2]  Martín Abadi,et al.  Reasoning about secrecy for active networks , 2003 .

[3]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[4]  Carl A. Gunter,et al.  PLAN: a packet language for active networks , 1998, ICFP '98.

[5]  Andrew M. Pitts,et al.  Higher order operational techniques in semantics , 1999 .

[6]  Pankaj Kakkar,et al.  The specification of PLAN , 1999 .

[7]  Mark-Oliver Stehr,et al.  CINNI - A Generic Calculus of Explicit Substitutions and its Application to lambda-, varsigma- and pi- Calculi , 2000, WRLA.

[8]  C. Talcott,et al.  Reflections on the Foundations of Mathematics: Essays in Honor of Solomon Feferman : Lecture Notes in Logic 15 , 2002 .

[9]  Angelos D. Keromytis,et al.  A secure PLAN , 1999, IEEE Trans. Syst. Man Cybern. Part C.

[10]  Robert Hieb,et al.  The Revised Report on the Syntactic Theories of Sequential Control and State , 1992, Theor. Comput. Sci..

[11]  Mark-Oliver Stehr,et al.  Programming, specification, and interactive theorem proving : towards a unified language based on equational logic, rewriting logic, and type theory , 2002 .

[12]  G.J. Minden,et al.  A survey of active network research , 1997, IEEE Communications Magazine.

[13]  C. Talcott,et al.  Reasoning about functions with effects , 1999 .

[14]  Carolyn L. Talcott,et al.  A Variable Typed Logic of Effects , 1995, Inf. Comput..

[15]  Peter Csaba Ölveczky,et al.  Maude as a wide-spectrum framework for formal modeling and analysis of active networks , 2002, Proceedings DARPA Active Networks Conference and Exposition.

[16]  Amr Sabry,et al.  From Syntactic Theories to Interpreters: Automating the Proof of Unique Decomposition , 2001, High. Order Symb. Comput..

[17]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[18]  José Meseguer,et al.  The Maude LTL Model Checker , 2004, WRLA.

[19]  Scott F. Smith,et al.  Specification Diagrams for Actor Systems , 1998, High. Order Symb. Comput..

[20]  M. Felleisen,et al.  Reasoning about programs in continuation-passing style , 1993 .

[21]  Alan F. Blackwell,et al.  Programming , 1973, CSC '73.

[22]  Carl A. Gunter,et al.  Network Programming Using PLAN , 1998, ICCL Workshop: Internet Programming Languages.

[23]  Carolyn L. Talcott,et al.  Actor Languages Their Syntax, Semantics, Translation, and Equivalence , 1999, Theor. Comput. Sci..

[24]  Carolyn L. Talcott,et al.  Formal specification and analysis of active networks and communication protocols: the Maude experience , 2000, Proceedings DARPA Information Survivability Conference and Exposition. DISCEX'00.

[25]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[26]  Carl A. Gunter,et al.  Specifying the PLAN Network Programming Langauge , 1999, HOOTS.

[27]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[28]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[29]  Carolyn L. Talcott,et al.  Programming, Transforming, and Providing with Function Abstractions and Memories , 1989, ICALP.

[30]  Erich J. Neuhold,et al.  Formal description of programming concepts , 1991 .