From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,c52c30d32b866eae X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,2ea02452876a15e1 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,c52c30d32b866eae X-Google-Attributes: gid1108a1,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Real OO Date: 1996/04/30 Message-ID: #1/1 X-Deja-AN: 152298897 references: <4m5ugh$ben@nntp.Stanford.EDU> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.eiffel,comp.lang.ada,comp.object Date: 1996-04-30T00:00:00+00:00 List-Id: In article <4m5ugh$ben@nntp.Stanford.EDU>, Amit Patel wrote: >Another example is a compiler, which has a fixed set of intermediate >representation data variants (add, mul, mov, etc.) and a varying >number of operations (code optimization passes). Each optimization >pass can be put into a separate module, and new optimization passes >can be added without modifying the intermediate code definition. What if the "representation data variants" are *not* fixed. How do you design things so that it's easy to add a new one of those, and *also* easy to add a new optimization pass? "Design Patterns" by Gamma et al seems to force you to decide which of those two dimensions you might want to modify in the future, and design accordingly. But what if *both* are likely to need modification? - Bob