# US 10,120,661 B2 · Multi-flavored software execution from a singular code base

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,661 B2
- Document ID: US10120661B2
- Status: Granted
- Kind: B2
- Application number: 14/800,918
- Filed: 2015-07-16
- Published: 2017-01-19
- Granted: 2018-11-06
- Earliest claimed: 2015-07-16
- Assignees: SugarCRM Inc.
- Applicants: SugarCRM Inc.
- Inventors: Andreas Sandberg; Yuk Lai Suen
- Web page: https://patentgrep.com/patent/US10120661B2

## CPC

- G06F 8/41: Compilation
- G06F 8/42: {Syntactic analysis}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 9/44542: {Retargetable}
- G06F 8/52: Binary to binary
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/454: {Multi-language systems; Localisation; Internationalisation}
- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/3676: {for coverage analysis}
- G06F 16/9577: {Optimising the visualization of content, e.g. distillation of HTML documents}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present invention provide a method, system and computer program product for multi-flavored software execution from a singular code base. In an embodiment of the invention, a method for multi-flavored software execution from a singular code base is provided. The method includes receiving a request in an interpreter to interpret a version of source code of a computer program the interpreting transforming the source code into byte code executable by a virtual machine. The method thereafter includes responding to the request by performing in the interpreter source code interpretation only of selected portions of the source code being annotated by tags corresponding to the version.

## Claims

### Claim 1

A method for multi-flavored software execution from a singular code base, the method comprising:
receiving a request in an interpreter to interpret a version of source code of a computer program that is interpretable in accordance with an interpretable programming language without building the version, the interpreting transforming the source code in the interpretable programming language into byte code executable by a virtual machine;
responding to the request by performing in the interpreter source code interpretation only of selected portions of the source code in the interpretable programming language that are annotated by tags corresponding to the version without building the version so as to produce byte code only for those portions of the source code in the interpretable programming language that are annotated by the tags corresponding to the version without building the version, while other portions of the source code in the interpretable programming language that are annotated by different tags corresponding to different versions of the source code are excluded from interpretation into byte code; and,
passing the byte code produced during interpretation to the virtual machine for execution.

### Claim 2 (depends on 1)

The method of claim 1, wherein the interpreter is a PHP hypertext processor interpreter.

### Claim 3 (depends on 1)

The method of claim 1, wherein the source code comprises multiple portions, each portion comprising an annotation indicating a particular corresponding version of the computer program.

### Claim 4

A data processing system configured for multi-flavored software execution from a singular code base, the system comprising:
a host computing system comprising at least one computer with memory and at least one processor;
a virtual machine executing in the memory of the host computing system;
an interpreter executing in the virtual machine, the interpreter comprising program code enabled to receive a request to interpret a version of source code of a computer program that is interpretable in accordance with an interpretable programming language without building the version, the interpreting transforming the source code in the interpretable programming language into byte code executable by the virtual machine, to respond to the request by performing in the interpreter source code interpretation only of selected portions of the source code in the interpretable programming language that are annotated by tags corresponding to the version without building the version so as to produce byte code only for those portions of the source code in the interpretable programming language that are annotated by the tags corresponding to the version without building the version, while other portions of the source code in the interpretable programming language that are annotated by different tags corresponding to different versions of the source code care excluded from interpretation into byte code, and to pass the byte code produced during interpretation to the virtual machine for execution.

### Claim 5 (depends on 4)

The system of claim 4, wherein the interpreter is a PHP hypertext processor interpreter.

### Claim 6 (depends on 4)

The system of claim 4, wherein the source code comprises multiple portions, each portion comprising an annotation indicating a particular corresponding version of the computer program.

### Claim 7 (depends on 4)

The system of claim 4, wherein the program code is included as an extension to the interpreter.

### Claim 8

A computer program product for multi-flavored software execution from a singular code base, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a device to cause the device to perform a method comprising:
receiving a request in an interpreter to interpret a version of source code of a computer program that is interpretable in accordance with an interpretable programming language without building the version, the interpreting transforming the source code in the interpretable programming language into byte code executable by a virtual machine;
responding to the request by performing in the interpreter source code interpretation only of selected portions of the source code in the interpretable programming language that are annotated by tags corresponding to the version without building the version so as to produce byte code only for those portions of the source code in the interpretable programming language that are annotated by the tags corresponding to the version without building the version, while other portions of the source code in the interpretable programming language that are annotated by different tags corresponding to different versions of the source code are excluded from interpretation into byte code; and,
passing the byte code produced during interpretation to the virtual machine for execution.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the interpreter is a PHP hypertext processor interpreter.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the source code comprises multiple portions, each portion comprising an annotation indicating a particular corresponding version of the computer program.
