Previous Next Contents

2   PLAN

PLAN is a simple, functional programming language based on the simply-typed lambda calculus with some added primitives to express remote evaluation. PLAN may be thought of as an Active Network scripting language such that each active packet consists of a PLAN program. PLAN programs may invoke services, which make up a library of functions resident on an Active node. Services are described in more detail in Section 7.

PLAN is resource limited in two ways. All PLAN programs are guaranteed to terminate, limiting the resources consumed on any particular active node. Further, PLAN applications (that is, series of PLAN packets spawned from an initial packet) are limited by a global resource bound, thus limiting the resources consumed from the network at large.

The newest version of PLAN supports static type inference of source programs, eliminating (some of) the need for type annotations. In order for the inference algorithm to properly check calls to the services, the programmer must provide service declarations in his program indicating the types of service functions or values. PLAN functions and bindings may be polymorphic, as well as those of services. More on these may be found in Section 7.


Previous Next Contents