next up previous top
Next: Computation
Up: Component Type
Previous: Component Type

Module

Semantics

The component type Module corresponds to a compilation unit in a typical programming language. Such compilation units define and export function definitions and global data definitions, and they also make function calls and access global data that are defined in other compilation units. In addition, compilation units perform input and output to files. In typical programming languages, the input and output operations are performed by special function or procedure calls.

Player types

Players of the following types can be legally exposed in the interface of a component of type Module:

an exported procedure or function definition
a call to an exported procedure or function definition in another compilation unit
an exported global data definition
a reference to an exported global data definition in another compilation unit
a read operation from a file
a write operation to a file
a collection of programming language players, players of types
RoutineDef, RoutineCall, GlobalDataDef, and GlobalDataUse

Properties

The following properties can be legally included in the property list of a component of type Module. Properties legal in an <interface> property list have a C in parentheses after the property name; those legal in an <instantiation> property list have an I:

The syntax for an InstFormals property in a component of type
Module is a comma-separated list of <parameter>s enclosed in parentheses. A <parameter> consists of an <identifier>, followed by a `=', followed by a <complex string> or the language keyword NODEFAULT. A <complex string> is a simple "string" or a sequence of "string"s concatenated by the `&' character:

INSTFORMALS (first_parameter = "an initial value",
second_parameter = "a much" &
"longer initial value that " &
"will not fit on one line",
third_parameter = NODEFAULT)
The syntax for a Variant property in a component of type Module is a single <identifier> or "string" surrounded by parentheses:

VARIANT (a_variant_name)
VARIANT ("a variant name")
The syntax for a Processor property in a component of type Module is a single <identifier> or "string" surrounded by parentheses:

PROCESSOR (a_processor_name)
PROCESSOR ("a.processor.name")
The syntax for an EntryPoint property in a component of type Module is a single <identifier> or "string" surrounded by parentheses:

ENTRYPOINT (an_entrypoint_name)
ENTRYPOINT ("an entrypoint name")
The Library property has no associated value. The syntax, therefore, is simply:

LIBRARY

Semantic Checks

No special semantic checks are made for components of type Module.

Implementation Considerations

The source code implementation of a Module component is simply a collection of externally defined C functions and data definitions. The functions may make calls to externally defined functions in other compilation units, and both the functions and global data may reference other externally defined data during processing and initialization.


next up previous top
Next: Computation
Up: Component Type
Previous: Component Type

Comments? Mail the current maintainer of this page.

Author: Gregory Zelesnik

Last Modified: May 12, 1996