Migrating code from a source format to a target format

US9052966B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9052966-B1
Application numberUS-201113310458-A
CountryUS
Kind codeB1
Filing dateDec 2, 2011
Priority dateDec 2, 2011
Publication dateJun 9, 2015
Grant dateJun 9, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Source code is automatically migrated from a source format to a target format. In particular, the execution of the source code is dynamically analyzed for incompatibilities using runtime information. Solutions for the incompatibilities are additionally determined. Based on the identified incompatibilities and solutions, the source code is converted from the source format to the target format.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method of migrating dynamic language source code from a source format to a target format comprising: executing the dynamic language source code in an environment compatible with the source format; analyzing, during execution of the dynamic language source code, runtime information associated with the execution of the dynamic language source code in the environment compatible with the source format; determining a data type for an object in the dynamic language source code for the target format based on the analyzed runtime information; automatically identifying, responsive to the analyzed runtime information and the determined data type, a runtime incompatibility in the dynamic language source code with respect to the target format involving the determined data type for the object being used in a manner that is incompatible with the data type in the target format, the automatically identifying being accomplished by accessing encoded expert knowledge describing how to convert dynamic language source code from a source format to a target format; and determining that a run-time incompatibility with respect to the target format exists in the dynamic language source code based on the accessed encoded expert knowledge; automatically performing a lookup, in a data structure, for a solution to the identified runtime incompatibility, the solution enabling the dynamic language source code to be made compatible with the target format by indicating a conversion technique for converting the object to a data type that is compatible with respect to the target format; recording any identified runtime incompatibility, a location of the identified runtime incompatibility in the dynamic language source code, and the determined solution to the identified runtime incompatibility in a migration data file; and automatically converting the dynamic language source code from the source format to the target format by accessing the migration data file to identify the location of the incompatible code, the determined solution, and the indicated conversion technique. 2. The computer-implemented method of claim 1 , further comprising verifying the converted dynamic language source code in an environment compatible with the target format. 3. The computer-implemented method of claim 1 , wherein the analyzing comprises at least monitoring variable values and object data types for the dynamic language source code and the identifying comprises identifying an incompatibility based at least in part on the monitored variable values and object data types. 4. The computer-implemented method of claim 1 , wherein identifying an incompatibility in the dynamic language source code comprises: identifying an operation to be performed on the object; determining a set of data types supported by the operation in the target format; and determining that the data type for the object is not included in the set of data types supported by the operation in the target format. 5. The computer-implemented method of claim 1 , wherein: executing the dynamic language source code in an environment compatible with the source format comprises using an interpreter to execute the dynamic language source code in an environment compatible with the source format; and analyzing the run-time information comprises using instrumentation included in the interpreter to access the run-time information. 6. The computer-implemented method of claim 1 , wherein the dynamic language source code does not include an incompatibility with respect to the source format, and wherein execution of the dynamic language source code is performed without identifying an incompatibility with respect to the source format. 7. The computer-implemented method of claim 1 , wherein: executing the dynamic language source code comprises performing one or more unit tests on the dynamic language source code in the environment compatible with the source format, wherein the dynamic language source code does not include a semantic incompatibility with respect to the source format; and identifying the incompatibility comprises determining that a statement of code in the dynamic language source code does not include a semantic incompatibility with respect to the source format, and determining that the statement of code includes a semantic incompatibility with respect to the target format. 8. A non-transitory computer-readable medium storing executable computer instructions for migrating dynamic language source code from a source format to a target format, the computer instructions comprising instructions for: executing the dynamic language source code in an environment compatible with the source format; analyzing, during execution of the dynamic language source code, runtime information associated with the execution of the dynamic language source code in the environment compatible with the source format; determining a data type for an object in the dynamic language source code for the target format based on the analyzed runtime information; identifying, responsive to the analyzed runtime information and the determined data type, a run-time incompatibility in the dynamic language source code with respect to the target format involving the determined data type for the object being used in a manner that is incompatible with the data type in the target format, the automatically identifying being accomplished by accessing encoded expert knowledge describing how to convert dynamic language source code from a source format to a target format; and determining that a run-time incompatibility with respect to the target format exists in the dynamic language source code based on the accessed encoded expert knowledge; performing a lookup, in a data structure, for a solution to the identified run-time incompatibility, the solution enabling the dynamic language source code to be made compatible with the target format by indicating a conversion technique for converting the object to a data type that is compatible with respect to the target format; recording an identified runtime incompatibility, a location of the identified runtime incompatibility in the dynamic language source code, and the determined solution to the identified runtime incompatibility in a migration data file; and converting the dynamic language source code from the source format to the target format by accessing the migration data file to identify the location of the incompatible code, the determined solution, and the indicated conversion technique. 9. The computer-readable medium of claim 8 , the instructions further comprising instructions for verifying the converted source code in an environment compatible with the target format. 10. The computer-readable medium of claim 8 , wherein the analyzing comprises at least monitoring variable values and object data types for the dynamic language source code and the identifying comprises identifying an incompatibility based at least in part on the monitored variable values and object data types. 11. The computer-readable medium of claim 8 , wherein identifying an incompatibility in the dynamic language source code comprises: identifying an operation to be performed on the object; determining a set of data types supported by the operation in the target format; and determining that the data type for the object is not included in the set supported by the operation in the target format. 12. The computer-readable medium of claim 8 , wherein: executing the dynamic language source code in an environment compatible with the source format comprises using an interpreter to execute the dynamic language source code in an envir

Assignees

Inventors

Classifications

  • G06F8/51Primary

    Source to source · CPC title

  • Runtime code conversion or optimisation · CPC title

  • Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9052966B1 cover?
Source code is automatically migrated from a source format to a target format. In particular, the execution of the source code is dynamically analyzed for incompatibilities using runtime information. Solutions for the incompatibilities are additionally determined. Based on the identified incompatibilities and solutions, the source code is converted from the source format to the target format.
Who is the assignee on this patent?
Quinlan Brian Keith, Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/51. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 09 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).