Patent Document ID: 5519866
Application ID: 08085490

Base Claim:
1. A method for use on a computer system with a memory for incrementally linking a user-modified part of a computer program with previously compiled and linked parts of the computer program, the computer program being comprised of source code stored in the memory and the method comprising the steps of: (a) receiving into the memory a user-created model of the computer program, the model comprising an ordered collection of components, each of the collection of components having a source code property referencing a portion of the source code in the memory, an object code property specifying a portion of the memory and client information identifying others of the collection of components which must be changed when the each component is changed; (b) compiling and linking the source code portions in each of the collection of components to store executable object code in the memory portions specified by the object code properties of each of the collection of components; (c) modifying a first portion of the source code in response to a user request and identifying one of the collection of components having a source code property which references the first source code portion; (d) accessing the client information of the one component to identify others of the collection of components which must be changed and; (e) concurrently compiling and linking the one component and all of the other components that must be changed to store new executable object code in the memory portions specified by the object code properties of the one component and the other components identified in step (d).

---

Claim 2:
2. The method of claim 1, wherein the first source code portion comprises an interface portion for communicating with others of the collection of components and an implementation portion comprising a remainder of the first source code portion which does not communicate with others of the collection of components and wherein the one component includes an interface attribute, describing the interface portion, and an implementation attribute, describing the implementation portion, and wherein step (c) includes the step of (c.1) updating the implementation attribute when the implementation portion is modified in accordance with the user request and updating the interface attribute when the interface portion is modified in accordance with the user request; and wherein step (e) includes the steps of: (e.1) examining the implementation attribute and the interface attribute to determine whether only the implementation portion was modified in step (c) and, (e.1.1) if so, concurrently compiling and incrementally linking only the one component, and (e.1.2) if not, concurrently compiling and incrementally linking the one component and all of the other components that must be changed.