Extended objects

Despite the name of this column, some installments have focused less on pract ice than on pract ical philosophy. The last t w o " H a t Racks for Understanding" and "Cooperative Software"-advocated a set of ideals or goals that could guide the design of the next generation of applications software. It is time to talk about these ideals in actual practice. Suppose someone set out to build software that facil i tated u n d e r s t a n d i n g , tha t acted as a cooperative partner in the problemsolving process. What would that software look like? W h a t in te rna l structures would it have? Programmers at the Academic Comput ing Department at the Summer Institute of Linguistics (SIL) in Dallas, Tex., have been building such software for the past three years. The result is called C E L L A R : C o m p u t i n g Envi ronment for Linguistic, Literary, and Anthropological Research (a name which reflects the project's original motivation more than its nature). One of the key technologies in C E L L A R is a set of fundamental extensions to the object-oriented approach to software development. H a v i n g decided what would be _ necessary for excellent applications r support, the designers decided that re these things should be implemented in the innermost parts of the system. This -t makes things like multiple views of ~ information available throughout an g application, at any level of granularity.