Claims
- 1. A software program for execution on a machine, the software program including one or more components of the same component-type, the component type being defined from a base class comprising one or more slot definitions at least one of which is a property slot definition, the components being generated during run-time by the steps comprising:
identifying all property slot definitions in the base class; locating getter and setter methods for each identified property slot definition in the base class; generating a component-type object, the component-type object being configured to store slot definitions; storing in the component-type object the property slot definitions identified in the identifying step; generating one or more components, each component having a slotmap and a reference to the component-type object, wherein each slotmap includes a storage location for the value of each property-slot definition stored in the component-type object; and setting a property slot value, by inserting the property slot value into a storage location in the slotmap of a particular one of the one or more components, the property slot value being associated with one of the property slot definitions in the component-type object.
- 2. The method of claim 1 further including the step of:
generating a slotmap class, the slotmap class defining one or more storage locations for the values of each property slot whose definitions were identified in the identifying step; wherein in the generating of one or more components step each slotmap is an instance of the slotmap class.
- 3. The method of claim 1 wherein at least one of the definitions of the base class is an action slot definition and further comprising the steps of:
identifying one or more action slot definitions in the base class; and storing the one or more action slot definitions in the component-type object.
- 4. The method of claim 1 wherein at least one of the definitions of the base class is a topic slot definition and further comprising the steps of:
identifying one or more topic slot definitions in the base class; and storing the one or more topic slot definitions in the component-type object.
- 5. The method of claim 1, further comprising the step of, during execution of the software program, adding a dynamic slot to the slotmap of a first component from among the one or more components while leaving the component-type object unchanged the adding step being free of any compiling step.
- 6. The method of claim 5 wherein the dynamic slot is a property slot and the adding step comprises:
adding a dynamic property slot definition to the slotmap of the first component; and adding a dynamic property slot value to the slotmap of the first component.
- 7. The method of claim 5 wherein the dynamic slot is an action slot and the adding step comprises:
adding a dynamic action slot definition to the slotmap of the first component.
- 8. The method of claim 5 wherein the dynamic slot is a topic slot and wherein the adding step comprises:
adding a dynamic topic slot definition to the slotmap of the first component.
- 9. The method of claim 5 further comprising the step of, during execution of the software program, removing the dynamic slot from the first component, the removing step being free of any compiling step.
- 10. The method of claim 6, further comprising the steps of:
executing the software program for a period of time; removing the dynamic property slot from the first component; adding a frozen property slot definition to the component-type object, the frozen property slot definition being identical to the dynamic property slot definition; adding a frozen property slot value to the slotmap of the first object, the frozen property slot value being identical to the dynamic property slot value; wherein the steps of adding a frozen property slot definition and a frozen property slot value are performed by at least partially compiling the software program.
- 11. The method of claim 7, further comprising the steps of:
executing the software program for a period of time; removing the dynamic action slot from the first component; adding a frozen action slot definition to the component-type object, the frozen action slot definition being identical to the dynamic action slot definition; wherein the step of adding a frozen action slot definition is performed by at least partially compiling the software program.
- 12. The method of claim 8, further comprising the steps of:
executing the software program for a period of time; removing the dynamic topic slot from the first component; adding a frozen topic slot definition to the component-type object, the frozen topic slot definition being identical to the dynamic topic slot definition; wherein the step of adding a frozen topic slot definition is performed by at least partially compiling the software program.
- 13. The method of claim 5, further comprising the steps of:
displaying a graphical representation of the software program; and allowing a user to manipulate the graphical representation; wherein the adding step is performed in response to the user's manipulation of the graphical representation.
- 14. The method of claim 13, further including the step of removing the dynamic slot in response to the user's manipulation of the graphical representation.
- 15. The method of claim 5, wherein a plurality of components is generated to define code, each component having a respective slotmap and a reference to the same component-type object, wherein the dynamic slot is a link which defines a flow of execution of the code from a source slot in a second component from among the two or more components to a target slot in the first component.
- 16. The method of claim 15, further comprising the steps of:
displaying a graphical representation of the software program which includes a graphical representation of the link; and allowing a user to manipulate the graphical representation of the link; wherein the adding step is done in response to the user's manipulation of the graphical representation of the link.
- 17. The method of claim 15, wherein the source slot is a property slot and the target slot is a property slot, the method including the additional step of executing the code so that the value of the target slot changes with any changes of the value of the source slot.
- 18. The method of claim 15, wherein the source slot is a property slot and the target slot is an action slot, the method including the additional step of executing code so that the target slot is invoked in response to changes of the source slot's value.
- 19. The method of claim 15, wherein the source slot is a topic slot and the target slot is an action slot, the method including the additional step of executing code so that the target slot is invoked in response of the source slot firing.
- 20. The method of claim 15, wherein the source slot is a topic slot and the target slot is a topic slot, the method including the additional step of executing code so that the target slot fires in response to the source slot firing.
- 21. The method of claim 15, wherein the source slot is an action slot and the target slot is an action slot, the method including the additional step of executing code so that the target slot is invoked in response to the source slot being invoked.
- 22. The method of claim 15, wherein the source slot is an action slot and the target slot is a topic slot, the method including the additional step of executing code so that the target slot fires in response to invokation of the source slot.
- 23. The method of claim 15, wherein the link comprises:
a reference to the second component; the slot name of the source slot; and the slot name of the target slot.
- 24. A method for automatically designating unique names to components in a component based software system, comprising the steps of:
creating a root component, the root component having no parents; placing one or more non-root components within the root component; placing one or more non-root components within other non root components so that the components form a tree structure and each non-root component has one parent; assigning a first component, among the non root components, a unique identification string comprising a sequential list of the names of the ancestors of the component and the component's name.
- 25. The method of claim 24 wherein the first component comprises a slot and further comprising the step of:
providing an identification to the slot.
- 26. The method of claim 25, wherein the slot is a dynamic slot.
Parent Case Info
[0001] This patent application claims the benefit of priority under 35 U.S.C. 119(e) from U.S. Provisional Patent Application Serial No. 60/357,329, filed Feb. 15, 2002, entitled “COMPONENT MODEL FOR REAL-TIME SYSTEM CONTROL”, which is hereby incorporated by reference as if set forth in its entirety herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60357329 |
Feb 2002 |
US |