Using a high level programming language with a microcontroller
AssigneeAxalto SA
InventorsTimothy J. Wilkinson, Scott B. Guthery, Ksheerabdhi Krishna, Michael A. Montgomery
Life of this patent
Estimating the term…
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.
Claims44
A microcontroller comprising:
- a memory storing;
- a derivative application derived from an application having a class file format wherein the application is derived from an application having a class file format by first compiling the application having a class file format into a compiled form and then converting the compiled form into a converted form, and
- an interpreter configured to interpret derivative applications in the converted form and derived from applications having a class file format;
- and
- a processor coupled to the memory, the processor configured to use the interpreter to interpret the derivative application for execution.
A microcontroller having a set of resource constraints and comprising:
- a memory, and
- an interpreter loaded in memory and operable within the set of resource constraints, the microcontroller having;
- at least one application loaded in the memory to be interpreted by the interpreter, wherein the at least one application is generated by a programming environment comprising:
- a) a compiler for compiling application source programs written in high level language source code form into a compiled form, and
- b) a converter for post processing the compiled form into a minimized form suitable for interpretation within the set of resource constraints by the interpreter.
A method of programming a microcontroller having a memory and a processor operating according to a set of resource constraints, 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 being interpretable by at least one first intermediate code virtual machine;
- converting the first intermediate code into a second intermediate code;
- wherein the second intermediate code is interpretable within the set of resource constraints by at least one second intermediate code virtual machine;
- and
- loading the second intermediate code into the memory of the microcontroller.
A microcontroller operable to execute derivative programs which are derivatives of programs written in an interpretable programming language having a memory and an interpreter, the microcontroller comprising:
- (a) the microcontroller operating within a set of resource constraints including the memory being of insufficient size to permit interpretation of programs written in the interpretable programming language;
- and
- (b) the memory containing an interpreter operable to interpret the derivative programs written in the derivative of the interpretable language wherein a derivative of a program written in the interpretable programming language is derived from the compiled version of a program written in the interpretable programming language by applying a conversion of the compiled version including applying at least one rule selected from a set of rules including:
- (1) mapping strings to identifiers;
- (2) performing security checks prior to or during interpretation;
- (3) performing structural checks prior to or during interpretation;
- and
- (4) performing semantic checks prior to or during interpretation.
An integrated circuit card for use with a terminal, comprising:
- a communicator configured to communicate with the terminal;
- a memory storing:
- an application derived from a program written in a high level programming language format wherein the application is derived from a program written in a high level programming language format by first compiling the program into a compiled form and then converting the compiled form into a converted form, the converting step including modifying byte code operands from references using identifying strings to references using unique identifiers;
- and
- an interpreter operable to interpret such a derivative application in the converted form and derived from a program written in a high level programming language format;
- and
- a processor coupled to the memory, the processor configured to use the interpreter to interpret the application for execution and to use the communicator to communicate with the terminal.
A method for use with an integrated circuit card and a terminal, comprising:
- storing an interpreter operable to interpret programs derived from programs written in a high level programming language and an application derived from a program written in a high level programming language format in a memory of the integrated circuit card wherein the application is derived from a program written in a high level programming language format by first compiling the program into a compiled form and then converting the compiled form into a converted form, the converting step including modifying byte code operands from references using identifying strings to references using unique identifiers;
- and
- using a processor of the integrated circuit card to use the interpreter to interpret the application for execution;
- and
- using a communicator of the card when communicating between the processor and the terminal.
An integrated circuit card for use with a terminal, comprising:
- a communicator configured to communicate with the terminal;
- a memory storing:
- applications, each application derived from applications having a high level programming language format, and
- an interpreter operable to interpret applications derived from applications having a high level programming language format wherein the application is derived from a program written in a high level programming language format by first compiling the program into a compiled form and then converting the compiled form into a converted form, the converting step including modifying byte code operands from references using identifying strings to references using unique identifiers;
- and
- a processor coupled to the memory, the processor configured to:
- a.) use the interpreter to interpret the applications for execution,
- b.) use the interpreter to create a firewall to isolate the applications from each other, and
- c.) use the communicator to communicate with the terminal.
A microcontroller operable to execute derivative programs which are derivatives of programs written in an interpretable programming language having a memory and an interpreter, the microcontroller comprising:
- the microcontroller operating within a set of resource constraints including the memory being of insufficient size to permit interpretation of programs written in the interpretable programming language;
- and
- the memory containing an interpreter operable to interpret the derivative programs written in the derivative of the interpretable language wherein a derivative of a program written in the interpretable programming language is derived from a compiled form of the program written in the interpretable programming language by performing a conversion including mapping strings to identifiers.
Dependencies are inferred from the claim text.