NN73 first presents an overview of E-nets, as an extension of Petri nets, with explicit resource-management (data), and time. Next, the macro-motives, are referred to:
Macros are replaceable by the subnets they represent, for any E-net interpreter to understand the net, without any need for that E-net interpreter to know about the Macro E-net formalism. The modeler, on his/her own preference, may define new formal-notations (shorthand macros), or informal presentations, as far as, they are replaced, when needed.
The NN73 examples of new abstractions-with-macros, include:
Even without macros, an E-net was a versatile tool, for modeling, with its
The machine-interpretable predicates, provide resolution for the E-net interpreter run. This is apart from any associated real-world hardware/software behavior that the transition stands for, but relevant to it, as far as that behavior is expressed in the data/environment variables available to the E-net model). These provide the precision, to the extent, the modeler/designer prefers.
The macros are for modeling convenience.
Macros may help optimize page-space (on paper, or on a monitor), but irrelevant to the run-time complexity of the interpreter.
E-nets are employed for deterministic models, any way. Therefore, a subnet reduction is unimportant - except to cut a little, compiler-versus-interpreter re-compilation time. It is with a non-deterministic (exhaustive) reachability-test, such as popular with Petri nets, where a subnet reduction may improve the run-time feasibility of a verifier, enormosly.
To make a net machine-processable, it needs a(n unambiguous) formal existence - in terms of variables, and lists. NN73 example, the CDC 6400 example, is with a few fine points to notice:
As it is, that is a valid, interpretable E-net. The further-refineability is an extra. The macro-capability is employed as an intuitive improvement, within this specification. It is not taken as a license to leave the presented net ambiguous to the interpreter. To do that, simply replace a transition with a subnet (or, macro), when that finer level of specification is available. i.e: This is an alternative in representation. (see, NN73, p.724, and also VD78 to do that with Petri nets.)
NN73 lists those 12 attributes for that location. Any token to exist at that location, is with that type. This interprets an array as a record, as we know from the regular computer-programming. (Da80 employs that record as a variant-record (or, a union, when in C), tipped by the context.)
That array-interpreted-as-a-record is realizable with the procedures of E-net. These let abstract the interpreter-run-time-response:
Note 1:The (xi, Psi) go together (as noticeable with the emphasis of the ellipses). That is the original emphasis of what go together. The data-variables, and the (resolution) procedures that map their values to standardized indices into the array of inbound/outbound tokens, go together. Next, the interpreter/verifier will use that resolution-token (index) to refer to a location, for an in/out token.
Note 2: The multi-level presentation of the structure of an E-nets system, is noticeable, i.e., instead of presenting the whole system as a single seven-tuple (or, eight- or nine-tuple), the visible, and non-visible elements of the E-net (and the macros, elsewhere) are presented in their own places.
The E-net work, was the Ph.D. of Nutt, in 1972. Macro E-nets, preserve E-nets, while extending the intuitivity, and versatility, even further. The NN73 examples are fine. But they would necessarily stop at a bottom limit. It appears, though, that may not suffice to warn some of the ignorant, or the extra-neglectful people, about the possible consequences - when out to build models, or to "add" yet other capabilities.
We probably never expect to find worse than trivial examples, or warnings, in a published research paper, any way. Unfortunately, though, in 1982, a "newer" text was published by others, which also lead to a Ph.D. degree. That copycat82, the Un-Credible Ph.D. commits plagiarism and it is a subset of Macro E-nets, too. Its sheer ignorance, and/or immense neglect, provides a lot of un-exemplar examples, to avoid, when working with net-formalisms.