Dynamic adaptive programming
First Claim
1. In a computing environment comprising a static language program written using a statically compiled language wherein the statically compiled language makes provisions for dynamically compiled elements, including dependent calls to platform specific programming interfaces enabling platform-specific code translation, using a dynamic binding mechanism at a target platform, into a deployable platform executable to carry out an intended application functionality on a target platform among a plurality of target platforms, the target platform being the platform to which the compiled executable program is to be deployed but does not exist on one or more other platforms to which the compiled executable program is to be deployed and in which the statically compiled program is translated into its finalized form by invoking the dependent calls pertinent to the native resources of the target platform, a method of creating platform portable code, the method comprising:
- declaring a portion of code defined in a static language program, prior to the static language program being compiled, as being a dynamic object, the portion of code being targeted for a target platform configured to execute the portion of code as defined in the static language program prior to compiling the static language program, the static language program being a program compiled using a static language, wherein declaring the portion of code as being a dynamic object prevents exceptions from being thrown due to the dynamic object based on static analysis when the static language program is compiled, wherein the dynamic object comprises a dependent call to a platform specific programming interface implemented in the target platform, the platform specific programming interface being available on the target platform, but not available on one or more other platforms to which the compiled version of the static language program will be deployed; and
statically compiling the static language program to platform portable code that is then deployed to and successfully executed on different platforms and where when the portable code is deployed to the target platform, the target platform is able to execute the portion of code declared as being a dynamic object, wherein statically compiling the static language program to platform portable code comprises leaving the portion of code declared as a dynamic object as dynamic code to be interpreted by the target platform to call the platform specific programming interface of the target platform.
3 Assignments
0 Petitions
Accused Products
Abstract
Creating and executing platform portable code. A method includes declaring an object as being a dynamic object in a program. The program is a program compiled using a static language, except that the dynamic object is excluded from static analysis on the object when the program is compiled. The dynamic object includes a dependent call to a platform specific API. The platform specific API is available on one or more platforms to which a compiled version of the program will be deployed, but not available on one or more other platforms to which the compiled version of the program will be deployed.
-
Citations
20 Claims
-
1. In a computing environment comprising a static language program written using a statically compiled language wherein the statically compiled language makes provisions for dynamically compiled elements, including dependent calls to platform specific programming interfaces enabling platform-specific code translation, using a dynamic binding mechanism at a target platform, into a deployable platform executable to carry out an intended application functionality on a target platform among a plurality of target platforms, the target platform being the platform to which the compiled executable program is to be deployed but does not exist on one or more other platforms to which the compiled executable program is to be deployed and in which the statically compiled program is translated into its finalized form by invoking the dependent calls pertinent to the native resources of the target platform, a method of creating platform portable code, the method comprising:
-
declaring a portion of code defined in a static language program, prior to the static language program being compiled, as being a dynamic object, the portion of code being targeted for a target platform configured to execute the portion of code as defined in the static language program prior to compiling the static language program, the static language program being a program compiled using a static language, wherein declaring the portion of code as being a dynamic object prevents exceptions from being thrown due to the dynamic object based on static analysis when the static language program is compiled, wherein the dynamic object comprises a dependent call to a platform specific programming interface implemented in the target platform, the platform specific programming interface being available on the target platform, but not available on one or more other platforms to which the compiled version of the static language program will be deployed; and statically compiling the static language program to platform portable code that is then deployed to and successfully executed on different platforms and where when the portable code is deployed to the target platform, the target platform is able to execute the portion of code declared as being a dynamic object, wherein statically compiling the static language program to platform portable code comprises leaving the portion of code declared as a dynamic object as dynamic code to be interpreted by the target platform to call the platform specific programming interface of the target platform. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a computing environment comprising a statically compiled language wherein the statically compiled language makes provisions for dynamically compiled elements, including dependent calls to platform specific programming interfaces enabling platform-specific code translation, using a dynamic binding mechanism at a target platform, into a deployable platform executable to carry out an intended application functionality on a target platform among a plurality of target platforms, the target platform being the platform to which the compiled executable program is to be deployed but does not exist on one or more other platforms to which the compiled executable program is to be deployed and in which the statically compiled program is translated into its finalized form by invoking the dependent calls pertinent to the native resources of the target platform, a method of executing platform portable code, the method comprising:
-
accessing a portion of code, configured to be executed on a target platform, declared as a dynamic object included in a compiled program compiled from a static language program, wherein the portion of code was included in the compiled program before the static language program was compiled, but wherein the portion of code was excluded from static analysis during compiling of the compiled program, preventing exceptions from being thrown due to the dynamic object based on static analysis when the static language program is compiled, as a result of the portion of code being declared as a dynamic object in the static language program such that the portion of code remains as declared prior to the static language program being compiled such that the portion of code remains interpretable by the target platform before and after the static language program is compiled, leaving the portion of code declared as a dynamic object as dynamic code to be interpreted by the target platform to call the platform specific programming interface of the target platform, such that when the portable code is deployed to the target platform, the target platform is able to execute the portion of code declared as being a dynamic object, and wherein the portion of code comprises functionality to act as a proxy object that is configured to load a platform specific object at runtime if the platform specific object is accessible on a platform executing the compiled program at runtime; testing the proxy object to determine if the platform specific object loaded successfully; and determining that the platform specific object loaded successfully, and as a result making a call to the platform specific object programming interface. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. In a computing environment comprising a statically compiled language wherein the statically compiled language makes provisions for dynamically compiled elements, including dependent calls to platform specific programming interfaces enabling platform-specific code translation, using a dynamic binding mechanism at a target platform, into a deployable platform executable to carry out an intended application functionality on a target platform among a plurality of target platforms, the target platform being the platform to which the compiled executable program is to be deployed but does not exist on one or more other platforms to which the compiled executable program is to be deployed and in which the statically compiled program is translated into its finalized form by invoking the dependent calls pertinent to the native resources of the target platform, a method of executing platform portable code, the method comprising:
-
accessing a portion of code, configured to be executed on a target platform, declared as a dynamic object included in a compiled program compiled from a static language program, wherein the portion of code was included in the compiled program before the static language program was compiled, but wherein the portion of code was excluded from static analysis during compiling of the compiled program, preventing exceptions from being thrown due to the dynamic object based on static analysis when the static language program is compiled, as a result of the dynamic object being declared as a dynamic object in the static language program such that the portion of code remains as declared prior to the static language program being compiled such that the portion of code remains interpretable by the target platform before and after the static language program is compiled, leaving the portion of code declared as a dynamic object as dynamic code to be interpreted by the target platform to call the platform specific programming interface of the target platform such that when the portable code is deployed to the target platform, the target platform is able to execute the portion of code declared as being a dynamic object, and wherein the portion of code comprises a dependent call to a platform specific programming interface, the platform specific programming interface being available on one or more platforms to which the compiled program will be deployed, including the target platform, but not available on one or more other platforms to which the compiled program will be deployed, and wherein the dependent call to a platform specific programming interface will fail at runtime on some platforms to which the compiled program will be deployed; testing the dynamic object to determine if the platform specific programming interface is supported on a platform presently executing the compiled program; and determining that the platform specific programming interface is supported on the platform presently executing the compiled program, and as a result making a call to the platform specific programming interface. - View Dependent Claims (18, 19, 20)
-
Specification