Resistance is Futile; Formal Linguistic Observations on Design Patterns
Peter van Emde Boas

Abstract:
Inspection of the current literature on Design Patterns shows that the Prime 
Directive for this community is Pragmatics. It hardly matters what patterns 
are, or how Patterns are represented formally or syntactically. What does 
matter is their role in enhancing the reuse of good solutions to recurring 
problems.
In this article I want to show that minimal assumptions about the pragmatic 
use of Patterns suffice to show that Design Patterns form just another formal 
language, which can be shown to be at least Recursively enumerable. Whether 
the language is Recursive depends on further conditions on the actual relation 
which is assumed to hold between a pattern and its possible invocations. There 
are no a priori reasons enforcing that this should be an easily decidable 
relation; quite to the contrary: a little amount of linguistic expressivity 
suffices for showing that this relation is likely to be complex. Without 
restrictions on the linguistic tools allowed for expressing design patterns 
this relation will become undecidable. For Non­Design Patterns which leave
no visible trace in the designs constructed using them, the argument doesn't 
apply.