Data processing: software development – installation – and managem – Software program development tool – Linking
Reexamination Certificate
1999-08-26
2002-08-27
Morse, Gregory (Department: 2762)
Data processing: software development, installation, and managem
Software program development tool
Linking
C709S241000
Reexamination Certificate
active
06442752
ABSTRACT:
COPYRIGHT NOTICE
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the United States Patent & Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
1. Field of the Invention
The present invention is directed to computer systems, and more particularly, to a method, apparatus, and computer program product for replacing a dynamic link library (DLL) of a first computing environment with a DLL of a second computing environment that can be invoked by a calling application in the first computing environment in a manner that is transparent to the calling application. The present invention is particularly useful in systems in which the first computing environment is emulated within the second computing environment.
2. Description of the Prior Art
Most computer operating systems provide a dynamic link library facility that enables a computer programmer to provide certain executable procedures and functions in the form of a library that is separate from the applications that execute on the computer. Typically, an application is dynamically linked to the library at run-time, so that the application can call one or more of the procedures and functions that are exported by the library. Exported procedures are referred to as entry points into the library. Unlike regular applications, which are generally executed from the beginning, a library can be entered at any entry point. Libraries allow a computer programmer to keep certain types of procedures and functions that are commonly used by numerous applications in a single library code file that all applications can use. This eliminates the need to duplicate code for common functions in each application.
FIG. 1
shows an exemplary computer system.
10
, such as a Unisys A Series or ClearPath HMP NX computer system, that runs the Unisys MCP operating system
12
. The computer system
10
is referred to herein as an MCP server. The MCP operating system provides a dynamic link library facility of the type described above. This facility allows an application program
14
to call one or more exported procedures
18
a,
18
b,
18
c
from a library code file
16
. Each exported procedure has a procedure name (e.g., “P
1
”, “P
2
”, “P
3
”, etc.) and may receive one or more arguments or parameters (e.g., “arg
0
”, “arg
1
”, “arg
2
”, etc.). Each argument has a predefined data type. The name of a procedure, its arguments, and their data types represent an interface, sometimes also commonly referred to as a signature, for the procedure. Any call made to a given library procedure from an application must adhere to the procedure's interface. That is, the correct name of the procedure must be used in the calling application, and the number and data types of the arguments passed to the procedure by the calling application must match those of the procedure's interface. For purposes of illustration herein, the interfaces of each of the exported procedures
18
a,
18
b,
and
18
c
of the library code file
16
are represented respectively at
20
a,
20
b,
and
20
c.
Referring still to
FIG. 1
, when the source code for a library is compiled in the MCP operating system environment, the compiler generates a directory
22
that becomes part of the executable library object code file
16
. The directory
22
contains a description of each of the exported procedures in the library, including the name and type of the procedure and a description of its arguments.
When the source code of an application program that calls one or more procedures of a library is compiled in the MCP operating system environment, the compiler generates a template
24
that becomes part of the compiled application program object code file
14
. The template
24
, like the directory
22
, contains information about the library
16
and any declared procedures that it will call in the library. Specifically, the template
24
contains a description of the attributes of the library
16
and a description of each procedure in the library that the application program has imported. For each imported procedure, the template specifies the name and data type of the procedure and a description of each of its arguments.
FIG. 2
is a source code listing of an exemplary dynamic link library for the MCP operating system environment. This exemplary library exports two procedures, one of which is a typed procedure (TYPED_PROCEDURE (BOOLEAN_PARAM, INTEGER_PARAM)) (lines
201
-
206
) and the other of which is an un-typed procedure (UNTYPED_PROCEDURE (REAL_PARAM, INTEGER_ARRAY_PARAM)) (lines
207
-
212
). The typed procedure has two argument (sometimes also called parameters), one having a BOOLEAN data type and the other having an INTEGER data type. The untyped procedure also has two arguments, one having a REAL data type and the other having an INTEGER ARRAY data type.
FIG. 3
is a graphical depiction of the contents of the directory
22
′ that is created when the source code listing of
FIG. 2
is compiled in an MCP operating system environment. As shown, the directory is a single block of data having several sub components, including a Header block
25
, an Exports block
26
, a Types block
28
, and a Names block
30
. The Header block
25
appears physically at the beginning of the directory
22
′ and contains, in fixed locations, pointers to the other sub components. The Names block
30
contains the names (character strings) of the various exported items. The Types block
28
contains encoded descriptions of the types of the exported procedures and their parameters. Finally, the Exports block
26
contains an entry for each exported item. Each entry in the Exports block
26
contains a pointer to the name (within the Names block
30
), and the type signature (within the Types block
28
) of the exported item. The type signatures are in the form of a recursive description, with the kind of item (procedure, function, etc.) at the top. This is followed by the return value type, if any, and then the parameters in order. If the parameters have additional structure (such as an array), that information is included within the description for the parameter. Each element of a type description carries a length indication which includes any subordinate information. As mentioned above, the name of an exported procedure and the specification of the data types of its parameters define an interface, or signature, for the exported procedure.
FIG. 4
is a graphical depiction of the contents of the template
24
′ that is created when the source code of an application program that imports both of the exported procedures of the library of
FIG. 2
is compiled in the MCP operating system environment. As shown, the template
24
′ includes a Header block
34
, an Imports block
36
, a Types block
38
, a Names block
40
, and an Attributes block
42
. The Header block
34
appears physically at the beginning of the template
24
′ and contains, in fixed locations, pointers to the other sub components. The Names block
40
contains the names (character strings) of the items that the application program has declared as imports. The Types block
38
contains encoded descriptions of the types of the imported procedures and their parameters. The imports block
36
contains an entry for each imported item. Each entry in the imports block
36
contains a pointer to the name (within the Names block
40
), and the type signature (within the Types block
38
) of the imported item. As in the directory
22
′, the type signatures are in the form of a recursive description, with the kind of item (procedure, function, etc.) at the top. This is followed by the return value type, if any, and then the parameters in order. If the parameters have additional structure (such as an array), that information is included within the description for the p
Fender Timothy Neilson
Jennings Andrew T.
Krablin G. Lawrence
Stratton William
Atlass Michael B.
Morse Gregory
Rode Lisa A.
Starr Mark T.
Unisys Corporation
LandOfFree
METHOD, APPARATUS, AND COMPUTER PROGRAM PRODUCT FOR... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with METHOD, APPARATUS, AND COMPUTER PROGRAM PRODUCT FOR..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and METHOD, APPARATUS, AND COMPUTER PROGRAM PRODUCT FOR... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2885943