@article {14722, title = {PLAN: A programming language for active networks}, journal = {ACM SIGPLAN NOTICES}, volume = {34}, year = {1999}, month = {1999///}, pages = {86 - 93}, abstract = {PLAN (Programming Language for Active Networks) is anew language for programs that are carried in the packets of a programmable network. PLAN programs replace the packet headers (which can be viewed as {\textquoteleft}dumb{\textquoteright} programs) used in current networks. As a header replacement, PLAN programs must be lightweight and of limited functionality. These limitations are mitigated by allowing PLAN code to call service routines written in other, more powerful lan- guages. These service routines may also be loaded into the routers dynamically. This two-level architecture, in which PLAN serves as a scripting or {\textquoteleft}glue{\textquoteright} language for more gen- eral services, is the primary contribution of the paper. PLAN is a strict functional language providing a limited set of primitives and datatypes. PLAN de nes primitives for remotely executing PLAN programs on other nodes, and these primitives are used to provide basic data transport in the network. Because remote execution makes debugging di cult, PLAN provides strong static guarantees to the pro- grammer, such as type safety. A more novel property aimed at protecting network availability is a guarantee that PLAN programs use a bounded amount of space and time on active routers and bandwidth in the network. }, author = {Hicks, Michael W. and Kakkar,P. and Moore,J. T and Gunter,C. A and Nettles,S.} }