IP Library Granted Patent US 8,601,452
Granted Patent B2
US 8,601,452 · App. 12/019,421 · Granted Dec 3, 2013

Compiler for JAVA and .NET

Inventor: Boris Krasnoiarov (El Cerrito, CA)
Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,601,452
App. No.
12/019,421
Granted
Dec 3, 2013
Kind
B2
Abstract

A computer implemented method analyzing a first code in a first managed computer language and generating intermediate code in a completed language. The intermediate code into linking code that allows the second code in a second managed runtime language to interact with the first code.

Claims (57)

1. A computer implemented method comprising:

analyzing first code in a first language that is executable in a first managed runtime environment;

generating one or more stubs in a second language that is executable in a second managed runtime environment, wherein the one or more stubs are generated based on the analyzed first code;

generating intermediate code in a high-level language based on the analyzed first code;

converting the intermediate code into linking code so that the linking code allows second code in the second language that is executable in the second managed runtime environment, but is not executable in the first managed runtime environment, to interact with the first code that is executable in the first managed runtime environment, wherein the converting the intermediate code into the linking code comprises:

generating additional code comprising one or more type converters to convert:

an input in the second language to an input in the first language; and

an output in the first language to an output in the second language;

adding the additional code comprising the one or more type converters into the intermediate code so that the intermediate code includes the one or more type converters; and

compiling the intermediate code into mixed mode assembly code;

configuring the one or more stubs in the second language and the linking code to allow access between the second code in the second language and the first code in the first language, wherein the configuring comprises:

linking the one or more stubs in the second language to the linking code; and

linking the second code in the second language to the linking code; and

executing a program that includes the second code in the second managed runtime environment, wherein executing the program comprises using the one or more stubs in the second language to access the first code in the first language through the linking code;

wherein the first code is executed in the first managed runtime environment.

2. The computer implemented method of claim 1 , wherein the first managed runtime environment is an assembly language code runtime environment.

3. The computer implemented method of claim 1 , wherein the second managed runtime environment is a JAVA runtime environment.

4. The computer implemented method of claim 1 , wherein the first code is an assembly language code library.

5. The computer implemented method of claim 1 , wherein the first code is assembly language code and wherein the one or more stubs comprise a JAVA stub that is generated based on the assembly language code.

6. The computer implemented method of claim 1 , wherein the intermediate code is in C++.

7. A computer readable memory having stored therein a sequence of instructions which, when executed by a processor, cause the processor to:

analyze first code in a first language that is executable in a first managed computer environment;

generate one or more stubs in a second language that is executable in a second managed computer environment, wherein the one or more stubs are generated based on the analyzed first code;

generate intermediate code in a high-level language based on the analyzed first code;

convert the intermediate code into linking code so that the linking code allows second code in the second language that is executable in the second managed computer environment, but is not executable in the first managed computer environment, to interact with the first code that is executable in the first managed computer environment, wherein the converting the intermediate code into linking code comprises:

generating additional code comprising one or more type converters to convert:

an input in the second language to an input in the first language; and

an output in the first language to an output in the second language;

adding the additional code comprising the one or more type converters into the intermediate code so that the intermediate code includes the one or more type converters; and

compiling the intermediate code into mixed mode assembly code;

configure the one or more stubs in the second language and the linking code to allow access between the second code in the second language and the first code in the first language, wherein the configuring comprises:

linking the one or more stubs in the second language to the linking code; and

linking the second code in the second language to the linking code; and

executing a program that includes the second code in the second managed runtime environment, wherein executing the program comprises using the one or more stubs in the second language to access the first code in the first language through the linking code;

wherein the first code is executed in the first managed runtime environment.

8. The computer readable memory of claim 7 , wherein the first managed runtime environment is assembly language code runtime environment.

9. The computer readable memory of claim 7 , wherein the second managed runtime environment is a JAVA runtime environment.

10. The computer readable memory of claim 7 , wherein the first code is an assembly language code library.

11. The computer readable memory of claim 7 , wherein the first code is assembly language code and wherein the one or more stubs comprise a JAVA stub that is generated based on the assembly language code.

12. The computer readable memory of claim 7 , wherein the intermediate code is in C++.

13. A system comprising:

a processor; and

a memory coupled with and readable by the processor, having stored therein a sequence of instructions which, when executed by the processor, causes the processor to:

analyze first code in a first language that is executable in a first managed computer environment;

generate one or more stubs in a second language that is executable in a second managed computer environment, wherein the one or more stubs are generated based on the analyzed first code;

generate intermediate code in a high-level language based on the analyzed first code;

convert the intermediate code into linking code so that the linking code allows second code in the second language that is executable in the second managed computer environment, but is not executable in the first managed computer environment, to interact with the first code that is executable in the first managed computer environment, wherein the converting the intermediate code into linking code comprises:

generating additional code comprising one or more type converters to convert:

an input in the second language to an input in the first language; and

an output in the first language to an output in the second language;

adding the additional code comprising the one or more type converters into the intermediate code so that the intermediate code includes the one or more type converters; and

compiling the intermediate code into mixed mode assembly code;

configure the one or more stubs in the second language and the linking code to allow access between the second code in the second language and the first code in the first language, wherein the configuring comprises:

linking the one or more stubs in the second language to the linking code; and

linking the second code in the second language to the linking code; and

execute a program that includes the second code in the second managed runtime environment, wherein executing the program comprises using the one or more stubs in the second language to access the first code in the first language through the linking code;

wherein the first code is executed in the first managed runtime environment.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2011
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025986/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2008
From: KRASNOIAROV, BORIS
To: BEA SYSTEMS, INC.
Reel/Frame 020421/0642 →
Continuity (2)
Provisional Application 60892765 · Mar 2, 2007
Related Publication 20080216063A1 · Sep 4, 2008