Metaprogramming Text Processor


The Metaprogramming Text Processor (MTP) is a notation and associated tool for defining and instantiating text-based Adaptable Components. An Adaptable Component is a description of a family of programs or other software artifacts from which instances of the family are mechanically derivable. Informally, an Adaptable Component defines the exact form and content of every producible instance of a set of similar work products. Such a definition, written in the MTP notation, is made feasible by specifying a set of decisions that indicate when and how the encompassed work product instances differ. These decisions then are used to control the mechanical derivation, using the MTP tool, of different instances to meet different needs. The precise form of an Adaptable Component in MTP notation is defined in Basic Syntax.

Notational Conventions

The MTP notation is described following standard conventions:

	name :=  description
is a form which indicates that a concept identified by "name" has the meaning indicated by "description". All names of concepts having descriptions in this document are shown in italics.

A description can be either formal or informal. An informal description consists of any text enclosed in double quotes:

	"an informal description of a concept"

A formal description defines a concept by showing how it is composed in terms of other defined concepts and literal tokens.

A literal token is any text enclosed in single quotes:

These must be written exactly as shown to be recognized correctly by MTP.

Two terms separated by a vertical bar in a description

	term1 | term2
are alternatives, either of which is valid in the given context.

Two terms listed consecutively in a description

	term1 term2
occur together in the given order.

Terms enclosed in braces

	{ term }
occur repeatedly (zero or more times).

Terms enclosed in square brackets

	 [ term ]
are optional, occurring either zero or one times.