Functional languages use a construct known as pattern-matching, for defining functions. The function definition can be translated into pattern-matching lambda abstraction — a construct in enriched lambda calculus. In this paper a semantics for pattern-matching has been developed and implemented in a multiprocessor architecture — CTDNet. Most general case of pattern-matching with multiple equations and multiple arguments has been discussed. A formal strategy employing parallel execution rather than sequential has been developed to exploit the multiprocessor environment. At the same time the dynamic graph size is kept under check by postponing the work of substitution of arguments into various abstraction bodies until a succesful match is obtained. All the pattern-matching work is thus taken up in parallel but only the matched body is evaluated, the rest being discarded. |