Path: utzoo!attcan!uunet!snorkelwacker!usc!wuarchive!udel!new From: new@udel.EDU (Darren New) Newsgroups: comp.lang.misc Subject: Re: Languages that allow extensions to classes Message-ID: <16641@estelle.udel.EDU> Date: 12 Apr 90 12:38:44 GMT References: <16560@estelle.udel.EDU> <1238@fs1.ee.ubc.ca> <22413@cs.yale.edu> Reply-To: new@ee.udel.edu (Darren New) Organization: University of Delaware Lines: 27 In article <22413@cs.yale.edu> briscoe-duke@CS.YALE.EDU (Duke Briscoe) writes: >I think the other issue is whether a language has the capability of >incrementally extending or redefining definitions without having to do >massive recompilation. My original post which started this thread was meant to examine reusability. My example is this: I am working with a program called WISE, which is an interpreter for a language called Estelle. I am adding "hooks" into WISE in order that at key points it calls my program (called GROPE). When new versions of WISE are released, I simply run the change manager against all three versions and see what I've changed that the new version also changed (actually, it's harder than that, but should be that easy). Given the old WISE, the old GROPE, and the new WISE, generating the new GROPE is fairly simple. Any changes to WISE that are not in the area that GROPE changed do not need to be examined. If I had to change all the header files for all the portions of the WISE system I extended, these changes would have to be redone. This problem is similar to upgrading (say) a Unix system to a new release of the OS: you need to save /etc/passwd, certain config stuff, /usr/local, and various other files. You then install the new system and see what files you saved have changed in the new system (new deamons in initrc that need to be run) and so on. Problematically, you MUST change distribution files in Unix in order to configure your system. I don't need to change distribution files in Smalltalk in order to extend a system with a new capability. The compilation issue is less of a problem for me. How about Ada? I'm still not sure whether all functions on a given type (or returning a given type?) must be declared in the same header file. -- Darren