Tiling design patterns—a case study using the interpreter pattern

This paper explains how patterns can be used to describe the implementation of other patterns. It is demonstrated how certain design patterns can describe their own design. This is a fundamental reflexive relationship in pattern relationships. The process of assembling patterns by other patterns is named pattern tiling. Tiling enables us to interweave simple understood concepts of patterns into their complex real-life implementation. Several pattern tilings for the Interpreter design pattern are illustrated.

[1]  Doug Kimelman,et al.  Modeling Object-Oriented Program Execution , 1994, ECOOP.

[2]  John M. Vlissides,et al.  Automatic Code Generation from Design Patterns , 1996, IBM Syst. J..

[3]  Linda G. DeMichiel,et al.  The Common Lisp Object System: An Overview , 1987, ECOOP.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[6]  Martin E. Nordberg Variations on the Visitor Pattern , 1996 .

[7]  Feng-Jian Wang,et al.  An object-oriented specification for compiler , 1992, SIGP.

[8]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[9]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1959, Commun. ACM.

[10]  Brian Foote,et al.  Reflective facilities in Smalltalk-80 , 1989, OOPSLA 1989.

[11]  Harold Ossher,et al.  Subject-oriented composition rules , 1995, OOPSLA.

[12]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[13]  Jens Palsberg,et al.  Evolution of Object Behavior Using Context Relations , 1998, IEEE Trans. Software Eng..

[14]  Friedrich L. Bauer,et al.  Report on the algorithmic language ALGOL 60 , 1960, Commun. ACM.

[15]  Robert C. Martin,et al.  Acyclic visitor , 1997 .

[16]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[17]  J LieberherrKarl,et al.  Adaptive object-oriented programming using graph-based customization , 1994 .

[18]  Joseph Gil,et al.  Environmental acquisition: a new inheritance-like abstraction mechanism , 1996, OOPSLA '96.

[19]  Leon Sterling,et al.  The art of Prolog (2nd ed.): advanced programming techniques , 1994 .

[20]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[21]  Ralph E. Johnson,et al.  Design Patterns: Abstraction and Reuse of Object-Oriented Design , 1993, ECOOP.

[22]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[23]  Karl Lieberherr Workshop on adaptable and adaptive software , 1995, OOPSLA '95.

[24]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[25]  G. C. Shephard,et al.  Tilings and Patterns , 1990 .

[26]  N. V. Balasubramanian Object-oriented metrics , 1996, Proceedings 1996 Asia-Pacific Software Engineering Conference.

[27]  M. W. Shields An Introduction to Automata Theory , 1988 .

[28]  WuPei-Chi,et al.  An object-oriented specification for compiler , 1992 .

[29]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[30]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[31]  H. F. Li,et al.  An Empirical Study of Software Metrics , 1987, IEEE Transactions on Software Engineering.

[32]  Ole Lehrmann Madsen,et al.  Proceedings of the European Conference on Object-Oriented Programming , 1992 .

[33]  Joseph Gil,et al.  Soop - a synthesizer of an object-oriented parser , 1994 .

[34]  Henry Lieberman Reversible Object-Oriented Interpreters , 1987, ECOOP.