Footnotes:

1The suffixes .pcc, .pCpp etc. can also be used.
2Alternatively, inheritance may be used.
3for simplicity, we'll use a string representation for atoms instead of a more efficient method.
4For efficiency, bounds checking is not performed.
5Patterns are discussed in section 4.3.
6The implementation has only been tested on Linux, SunOS and Solaris. Please contact the author for details if you'd like to port the collector to your particular platform.
7 The current implementation of Prop translates inference into very naive code. This feature will be phased out and replaced by the more general and much faster graph rewriting mechanism.
8The variable e is assigned the new copy.
9Rewriting of a generic graph structure is not recommended with rewrite.
10 If an expression argument is not given to a cutrewrite statement, then the redex is left unchanged.
11 To ensure termination of the optimization process, augmented rules will not be further specialized.
12The implementation may not be effective.
13However, this feature has not been fully tested.
14An alpha version also works under Solaris. Thanks to Paul Dietz for the patch.
15In Prop, a special keyword collectable is used to identify garbage collected classes and types. The Prop translator uses this type annotation to derive the appropriate tracing methods.
16This base class is also inherited from class Mem, so that it adheres to the Prop memory management protocol.


Allen Leung
Mon Apr 7 14:33:55 EDT 1997