Learn More
Object-oriented languages fail to provide software developers with a way to say many of the things about their systems that they need to be able to say. To address this need, we have designed and implemented a language for use with C++ that allows software developers to express a wide variety of constraints on the designs and implementations of the systems(More)
In this paper, we explain how inheritance and dynamic binding make object-oriented programs difficult to maintain , and we give a concrete example of the problems that arise. We show that the difficulty lies in the fact that conventional tools are poorly suited for work with object-oriented languages, and we argue that semantics-based tools are essential(More)
We have developed a general-purpose computer program for the functional simulation of regulatory genetics. This simulator is knowledge-based and was developed using the Unit System, a software tool for the acquisition, representation, and manipulation of hierarchically organized knowledge. The advantages of a knowledge-based design are presented, and the(More)
It is our goal to create a software development environment that will offer multiple editable views of software systems, will allow users to define new views, and will support communication between views as the systems are changed. Our research to date has focused on the development of a single canonical representation for software systems, Semantic Program(More)
In this paper, I explain how inheritance and dynamic binding make object-oriented programs diicult to work on in a traditional development environment, and I give a concrete example of the problems that arise. I describe the importance of the problems, and I demonstrate that it's often undesirable to modify a system's design to avoid these problems. I show(More)