IP Library Granted Patent US 8,726,247
Granted Patent B2
US 8,726,247 · App. 12/907,949 · Granted May 13, 2014

Computer program product containing instructions for providing a processor the capability of executing an application derived from a compiled form

Inventors: Timothy J. Wilkinson (London, GB); Scott B. Guthery (Belmont, MA); Ksheerabdhi Krishna (Cedar Park, TX); Michael A. Montgomery (Cedar Park, TX)
Assignee: Gemalto SA
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,726,247
App. No.
12/907,949
Granted
May 13, 2014
Kind
B2
Abstract

An integrated circuit card is used with a terminal. The integrated circuit card includes a memory that stores an interpreter and an application that has a high level programming language format. A processor of the card is configured to use the interpreter to interpret the application for execution and to use a communicator of the card to communicate with the terminal.

Claims (48)

1. A method of programming a device having a memory and a processor, the method comprising the steps of:

inputting an application program in a first programming language;

compiling the application program in the first programming language into a first intermediate code associated with the first programming language wherein the first intermediate code is interpretable by a first intermediate code virtual machine and not interpretable by a second intermediate code virtual machine;

converting the first intermediate code into a second intermediate code by performing at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code, wherein the second intermediate code is interpretable by the second intermediate code virtual machine and not interpretable by the first intermediate code virtual machine;

loading the second intermediate code into the memory of the device;

providing the application with specific privileges; and

upon detecting that the application attempts access to a data item on the device, determining whether the specific privileges of the application are sufficient to allow the application the access to the data item.

2. The method of programming a device of claim 1 wherein providing specific privileges to the application comprises associating an identity with the application.

3. The method of programming a device of claim 1 further comprising determining whether the specific privileges of the application are sufficient to allow the application the access to the data item by delegating the determination to an operating system of the device.

4. The method of programming a device of claim 3 further comprising granting access upon determining that the identity associated with the application is contained in the access control list associated with the data item.

5. The method of programming a programmable device of claim 3 further comprising denying access upon determining that the identity associated with the application is not contained in the access control list associated with the data item.

6. A method of programming a device having a memory and a processor, the method comprising the steps of:

inputting an application program in a first programming language;

compiling the application program in the first programming language into a first intermediate code associated with the first programming language wherein the first intermediate code is interpretable by a first intermediate code virtual machine and not interpretable by a second intermediate code virtual machine;

converting the first intermediate code into a second intermediate code by performing at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code, wherein the second intermediate code is interpretable by the second intermediate code virtual machine and not interpretable by the first intermediate code virtual machine; and

loading the second intermediate code into the memory of the device;

wherein the second code virtual machine is set to recoginize a method invocation as being an invocation of a native code subroutine and upon recognizing the method invocation as being an invocation of a native code subroutine, transferring control to the native code subroutine.

7. The method of programming a device of claim 6 wherein the second code virtual machine passes parameters to the native code subroutine on a stack associated with the second code virtual machine.

8. The method of programming a device of claim 6 wherein the second code virtual machine passes parameters to the native code subroutine on a stack associated with an operating system of the device.

9. An electronic device, comprising:

a memory and a processor connected to the memory;

the memory storing:

a second intermediate code virtual machine configured to interpret applications in a converted form; and

an application for the device obtained by:

a compiler operable to compile an application program in a first programming language into a first intermediate code associated with the first programming language wherein the first intermediate code is interpretable by at least one first intermediate code virtual machine and not interpretable by the second intermediate code virtual machine; and

a converter operable to convert the first intermediate code into a second intermediate code by performing at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code, wherein the second intermediate code is interpretable by a second intermediate code virtual machine and not interpretable by the first intermediate code virtual machine;

wherein the application has associated therewith specific privileges; and

wherein the device is operable to, upon detecting that the application attempts access to a data item on the device, determine whether the specific privileges of the application are sufficient to allow the application the access to the data item.

10. The electronic device of claim 9 wherein the specific privileges to the application are associated with an identity associated with the application.

11. The electronic device of claim 10 wherein the device is further operable to grant access upon determining that the identity associated with the application is contained in the access control list associated with the data item.

12. The electronic device of claim 10 wherein the device is further operable to deny access upon determining that the identity associated with the application is not contained in the access control list associated with the data item.

13. An electronic device, comprising:

a memory and a processor connected to the memory;

the memory storing:

a second intermediate code virtual machine configured to interpret applications in a converted form; and

an application for the device obtained by:

a compiler operable to compile an application program in a first programming language into a first intermediate code associated with the first programming language wherein the first intermediate code is interpretable by at least one first intermediate code virtual machine and not interpretable by the second intermediate code virtual machine; and

a converter operable to convert the first intermediate code into a second intermediate code by performing at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code, wherein the second intermediate code is interpretable by a second intermediate code virtual machine and not interpretable by the first intermediate code virtual machine; and

wherein the application has associated therewith specific privileges; and wherein the device comprises an operating system operable to, upon detecting that the application attempts access to a data item on the device, determine whether the specific privileges of the application are sufficient to allow the application the access to the data item.

14. An electronic device, comprising:

a memory and a processor connected to the memory;

the memory storing:

a second intermediate code virtual machine configured to interpret applications in a converted form and further configured to recognize a method invocation as being an invocation of a native code subroutine and upon recognizing the method invocation as being an invocation of a native code subroutine, transferring control to the native code subroutine; and

an application for the device obtained by:

a compiler operable to compile an application program in a first programming language into a first intermediate code associated with the first programming language wherein the first intermediate code is interpretable by at least one first intermediate code virtual machine and not interpretable by the second intermediate code virtual machine; and

a converter operable to convert the first intermediate code into a second intermediate code by performing at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code, wherein the second intermediate code is interpretable by a second intermediate code virtual machine and not interpretable by the first intermediate code virtual machine.

15. The electronic device of claim 14 wherein the second code virtual machine passes parameters to the native code subroutine on a stack associated with the second code virtual machine.

16. The electronic device of claim 14 wherein the second code virtual machine passes parameters to the native code subroutine on a stack associated with an operating system of the device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2010
From: WILKINSON, TIMOTHY J; GUTHERY, SCOTT B; KRISHNA, KSHEERABDHI; MONTGOMERY, MICHAEL A
To: SCHLUMBERGER TECHNOLOGIES, INC.
Reel/Frame 025161/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2010
From: SCHLUMBERGER TECHNOLOGIES, INC.
To: SCHLUMBERGER INDUSTRIES, S.A.
Reel/Frame 025161/0238 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2010
From: SCHLUMBERGER INDUSTRIES, S.A.
To: SCHLUMBERGER SYSTEMES SA
Reel/Frame 025161/0241 →
CHANGE OF NAME Recorded Oct 19, 2010
From: SCHLUMBERGER SYSTEMES SA
To: AXALTO S.A.
Reel/Frame 025161/0319 →
MERGER Recorded Oct 19, 2010
From: AXALTO S.A.
To: GEMALTO S.A.
Reel/Frame 025161/0327 →
Continuity (5)
Continuation 11537156 · Sep 29, 2006
Continuation 10037390 · Oct 23, 2001
Continuation 08957512 · Oct 24, 1997
Provisional Application 60029057 · Oct 25, 1996
Related Publication 20110126178A1 · May 26, 2011