摘要:
A componentizing object designer is used to define a componentization of visual forms and other object-oriented technologies. The componentized object designer includes a set of tightly integrated protocols enabling Component Object Model (COM) objects to replace standard built-in visual form and other objects. The componentized object designer allows the design-time object and the run-time object to differ in implementation. The componentized object designer allows class identifiers for the run-time objects which are different than design-time objects. With a different class identifier, the run-time object can be saved as an object which is radically different from the design-time object. This enables the run-time object to be stored in a different object library than the design-time object. The componentized object designer allows for different persistence formats to be saved for run-time objects. The persistence formats for the run-time objects can be significantly smaller in size compared to the original design-time objects. This is important when the run-time object needs to be downloaded over a computer network like the Internet or an intranet.
摘要:
A componentizing object designer is used to define a componentization of visual forms and other object-oriented technologies. The componentized object designer includes a set of tightly integrated protocols enabling Component Object Model (COM) objects to replace standard built-in visual form and other objects. The componentized object designer allows the design-time object and the run-time object to differ in implementation. The componentized object designer allows class identifiers for the run-time objects which are different than design-time objects. With a different class identifier, the run-time object can be saved as an object which is radically different from the design-time object. This enables the run-time object to be stored in a different object library than the design-time object. The componentized object designer allows for different persistence formats to be saved for run-time objects. The persistence formats for the run-time objects can be significantly smaller in size compared to the original the design-time objects. This is important when the run-time object needs to be downloaded over a computer network like the Internet or an intranet. Licensing is aided by checking the object designer for licensing data, and embedding a licensing key into the run-time object.
摘要:
The present system for application independent programming of controls functions to provide a common set of controls across a plurality of application programs, such as those typically included in an office suite installed on a processor, while also enabling users to customize these controls for each application program. This is accomplished by producing an interface in the underlying common programming model which enables the user to access a set of controls, with their standard properties, methods and events, in a consistent manner. The user can then create a user defined control in a particular application program without having to replicate the underlying common programming model on which the customization is based. The user creates an extender file to add to and/or modify the standard properties, methods and events of a control to thereby produce an extended control for use in the selected application program. The system for application independent programming of controls merges, at run time, the standard control and the extender file to create the customized control. This enables users to create customized controls without having to replicate the common programming model and also enables consistency of control implementation. The control can also be uniformly updated across the plurality of application programs by simply updating the underlying control on which the customized instances are based.
摘要:
The system for instance customization with application independent programming of controls functions to place code behind documents in a multi-program environment in a manner that eliminates the object instance management problems of existing systems. The system consists of the process whereby the behavior of an object is changed by the user without changing its identity. In particular, the system for instance customization with application independent programming of controls combines a customizable object and a language engine object to form the customized instance of the object. Instance customization is enabled by the customized object aggregating the user defined customizations into a standard object that is supplied by Visual Basic. The Visual Basic object is given a pointer to the standard part of the document object which implements the base functionality of the document.
摘要:
The system for instance customization functions to place code behind documents in a multi-program environment in a manner that eliminates the object instance management problems of existing systems. The system for instance customization consists of the process whereby the behavior of an object is changed by the user without changing its identity. In particular, the system for instance customization combines a customizable object and a language engine object to form the customized instance of the object. Instance customization is enabled by the customized object aggregating the user defined customizations into a standard object that is supplied by Visual Basic. The Visual Basic object is given a pointer to the standard part of the document object which implements the base functionality of the document.
摘要:
A method and system for growing stack frames is described. According to the invention, actual growth of a stack frame buried below the top of the stack is delayed until such time as the frame is returned to the top of the stack. The invention can be applied, for example, in a source code debugger to provide an improved Edit and Continue capability. In one aspect, the invention is implemented in a computer system that includes a processor (CPU), a stack of frames accessible to the processor, and a program for execution by the processor. The program is composed of a set of procedures. The processor begins executing a procedure of the set and places a stack frame associated with the execution of the procedure on top of the stack. This first stack frame includes a reserved location that can be used later to record an amount or increment by which to grow the frame. The processor begins executing another procedure (or another instance of the same procedure) and places a second stack frame associated with this second procedure execution at the top of the stack above the first frame. The processor receives a command to increase the size of the first frame by a specified increment. While the second frame is above the first frame in the stack, the processor saves the specified increment in the reserved frame location of the buried first stack frame. Thereafter, the processor brings the first frame back to the top of the stack, retrieves the saved increment from the reserved frame location of the first frame, and increases the size of the first frame by the specified increment. The processor then can continue the first procedure execution with the first frame thus increased in size.
摘要:
In compiling source code organized in projects, unqualified name references are bound to program objects by searching namespaces in ascending hierarchical order from a current program unit to a current project. Namespaces within projects directly referenced by the current project are then searched. The search is completed at the first namespace in the search order which contains the matching name. Thus, program objects in projects directly referenced by the current project can be referenced by an unqualified name, without import or export lists of program elements.
摘要:
A compiler automatically builds a new version of an object server to be compatible with an existing version so that client applications built against the existing version are operable with the new version. The existing version object server retains type information relating to its classes and members in a type library. The compiler performs version compatibility analysis by comparing the new version object server against the type information in the existing version's type library. If the compatibility analysis determines that the new and existing versions are compatible, the compiler builds the new version object server to support at least each interface supported by the existing version object server. The compiler further associates version numbers with the new version object server indicative of its degree of compatibility with the existing version object server.
摘要:
A method and system for interfacing to type libraries are provided. In a preferred embodiment, the present invention defines an interface to a type library. The interface has a plurality of interface methods through which type information can be stored in and retrieved from the type library. A plurality of implementations of the defined interface are provided. A computer program is compiled using the defined interfaces to access the type information. When the compiled computer program is executed, it accesses the type information using one of the plurality of implementations. In a preferred embodiment, a type library contains type information to allow a compiler to bind to an instance of type at compile type (early binding).
摘要:
A compiler and compiling method minimizes recompilation of a computer program after an edit. The program is organized in plural program units, such as modules. The units are each compiled through a sequence of compilation states, including plural intermediate compilation states. In compiling each of the program units, dependencies between units are recorded in a table. When an edit to a program unit is later attempted, the edited unit is decompiled to one of various intermediate compilation states according to the edit performed. Units dependent of the edited unit are decompiled to one of various intermediate compilation states according to the dependency of the dependent unit on the edited unit. When next compiling the program, the units are compiled from their respective intermediate compilation state. Units also can be saved in various intermediate compilation states to minimize compiling when the program is again loaded.