Compiling a specified instruction from a first virtual application to a second virtual application

US11861389B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11861389-B2
Application numberUS-202117196053-A
CountryUS
Kind codeB2
Filing dateMar 9, 2021
Priority dateMar 9, 2021
Publication dateJan 2, 2024
Grant dateJan 2, 2024

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.

Systems and methods are described for compiling a specified instruction from a first virtual application to a second virtual application. Each virtual application may be associated with different programming languages. In an example method, a computing device receives a request to execute the specified instruction in the second virtual application. A target data structure may be created, using a library of the second virtual application, where a template directory may be stored. First syntax features, each defining a respective variable may be identified. An abstract syntax tree may be used to derive, for each first syntax feature, a modified definition for the respective variable. Second syntax features may be generated that define the respective variables more precisely than the first syntax features. The specified instruction may be rendered the second virtual application and may be expressed via the second syntax features and their respective variables.

First claim

Opening claim text (preview).

The invention is claimed as follows: 1. A method comprising: receiving, by a processor and from a first virtual application, a request to execute a specified instruction in a second different virtual application, wherein the first virtual application is associated with a first programming language and a second virtual application is associated with a second different programming language; creating, using a library of a second virtual application, a target data structure within the second virtual application; storing, to a template directory in the target data structure, one or more templates identified from the specified instruction; identifying, from the specified instruction, first syntax features, wherein each first syntax feature defines a respective variable; generating, using the specified instruction, an abstract syntax tree to derive, for each first syntax feature, a modified definition for the respective variable; generating, based on the modified definitions, and using the library of the second virtual application, second syntax features that define the respective variables more precisely than the first syntax features; rendering, using the second virtual application, the specified instruction into the one or more templates, the specified instruction expressed via the second syntax features and their respective variables; and executing, by the processor, the specified instruction using the second syntax features, wherein executing the specified instruction using the second syntax features results in less CPU cycles than executing the specified instruction using the first syntax features. 2. The method of claim 1 , wherein the generating the second syntax features comprises: translating a template function of the first virtual application to a filter replacement. 3. The method of claim 1 , wherein the generating the second syntax features results in a smaller allocation of dynamic memory when executing the specified instruction in the second virtual application as compared to executing the specified instruction in the first virtual application. 4. The method of claim 1 , further comprising, before the rendering, storing, in the template directory of the target data structure, one or more template properties of the first virtual application. 5. The method of claim 4 , further comprising: removing, from the template directory, one or more self-references for the one or more template properties that are incompatible in the second virtual application. 6. The method of claim 4 , further comprising: determining a new template property for a self-reference for the one or more template properties; and converting the self-reference to the new template property. 7. The method of claim 1 , wherein the first syntax features comprises a first conditional statement, a first branch instruction, and a first function statement for the first virtual application, and wherein the second syntax features comprises a second conditional statement, a second branch instruction, and a second function statement for the second virtual application. 8. The method of claim 7 , wherein the generating the second syntax features comprises: deriving, after analyzing the specified instruction, a modified definition of an ending of the first branch instruction; and generating, based on the modified definition of the ending of the first branch instruction, the second branch instruction, wherein the second branch instruction is more precise than the first branch instruction. 9. The method of claim 1 , wherein the generating the second syntax features comprises translating a “range” function to a “for” loop. 10. A system comprising: a first server hosting a first virtual application; a second server hosting a second different virtual application; and a computing device comprising: a processor; and memory storing instructions that, when executed by the processor, cause the processor to: receive, from the first server, a request to compile a specified instruction for the second virtual application, wherein the request includes an identifier of the second server; cause, using the identifier, the second server to create a target data structure within the second virtual application; store one or more templates identified from the specified instruction to a template directory in the target data structure; identify, from the specified instruction, a plurality of first syntax features, each first syntax feature defining a respective variable; determine, using the specified instruction and for each first syntax feature, a modified definition for the respective variable; generate, based on the modified definitions, and using a library of the second virtual application, second syntax features defining the respective variables more precisely than the first syntax features; render, using the second virtual application, the specified instruction into the one or more templates, the specified instruction expressed via the second syntax features and their respective variables; and execute the specified instruction using the second syntax features, wherein executing the specified instruction using the second syntax features results in less CPU cycles than executing the specified instruction using the first syntax features. 11. The system of claim 10 , wherein the instructions, when executed, cause the processor to generate the second syntax features by: translating a template function of the first virtual application to a filter replacement. 12. The system of claim 10 , wherein the system further comprises: a library associated with the first virtual application and the second virtual application. 13. The system of claim 10 , wherein the first syntax features comprises a first conditional statement, a first branch instruction, and a first function statement for the first virtual application, and wherein the second syntax features comprises a second conditional statement, a second branch instruction, and a second function statement for the second virtual application. 14. The system of claim 13 , wherein the instructions, when executed, further cause the processor to generate the second syntax features by: determining, based on the first conditional statement defining a variable in the specified instruction, a modified definition of the variable defined by the first conditional statement in the specified instruction; and generating, in the target data structure and based on the modified definition of the variable defined by the first conditional statement, a second conditional statement defining the variable more precisely than the first conditional statement. 15. The system of claim 10 , wherein the instructions, when executed, further cause the processor to: store, in the template directory in the target data structure, one or more template properties of the first virtual application; and identify, within the one or more template properties, one or more self-references that are incompatible with the second virtual application. 16. A non-transitory computer readable medium for use on a computer system containing computer-executable programming instructions for cross-compiling a specified instruction between two virtual applications, the instructions comprising: receiving, from a first virtual application, a request to compile a source code for the specified instruction for a second different virtual application; creating, using a library associated with the second virtual application, a target data structure within the second virtual application; storing one or more templates identified from the

Assignees

Inventors

Classifications

  • Hypervisor-specific management and integration aspects · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • Distribution of virtual machine instances; Migration and load balancing · CPC title

  • I/O management, e.g. providing access to device drivers or storage · 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 US11861389B2 cover?
Systems and methods are described for compiling a specified instruction from a first virtual application to a second virtual application. Each virtual application may be associated with different programming languages. In an example method, a computing device receives a request to execute the specified instruction in the second virtual application. A target data structure may be created, using …
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 02 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).