Table of Interleavings

Linda Wills (
07 Dec 1994 23:10:47 GMT

This is a first stab at trying to categorize our example interleaving
types according to what types of components are interleaved and what
resources are shared (if any) in the interleaving.

Comments and additions are welcome!




1. Domain interleaving

2. OOF Class boundaries

3. Mixing of data streams
(master file update)

4. Same variable NAME used name space
for multiple purposes

4'. Same data value used data space data plans --
for multiple purposes execution time structural pieces of
(intermediate value redist) implementation overlap
(common subexpressions)

5. Textual instantiation of a
construct like iteration, shared
by several plans

5a (6). Multiple inheritance

5b (12). Loop fusion execution time algorithmic plans --
(control) structural pieces of
implementation overlap

7. Sandwich wrappers (Parnas) wrapper and core
-- a type of delocalized interaction computation

8. Error handling; execution time control plans
could be done separately, but more
efficient to intersperse

9. Multiple entry points private data/state ??
to represent modules

10. Multiple entry points source text real-estate?
to share tail code I think it must involve
private state, since o.w.
would be a subroutine.

11. UNIX argv[0] links

13. Control flags execution time control plans
(like intermediate value redist,
but w/ control conditions,
not data values)

14. Special case code: execution time algorithmic and
subclass -> case statement -> sharing control plans
(e.g., INELPL > NXPTS, XPT1, XPT2)

15. trailing pointer enumeration execution time temporal execution
ako intermed. value redistribution, (reuse results of sequences
but is it interleaving? previous iterations)

16. delocalized plans
reasons plans get scattered in text:
a) linear nature of text (must impose strict order)
b) data structure accessors/constructors
are scattered due to procedural (not OO) focus.

Open questions:
Should it always be possible to undo interleaving?
Can the other types of design decisions always be reversed?

Execution time may be too general -- almost all interleaving reuses
data/control results to save time not recomputing.

					-Linda Wills (