Multiprocessor Programming Toolkit for Design Reuse
US-2024394048-A1 · Nov 28, 2024 · US
US9400668B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9400668-B2 |
| Application number | US-201414275506-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 12, 2014 |
| Priority date | Oct 25, 1996 |
| Publication date | Jul 26, 2016 |
| Grant date | Jul 26, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
The invention claimed is: 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; 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 by renumbering a byte code for the first virtual machine with a value corresponding to the byte code in the second virtual machine; and loading the second intermediate code into the memory of the device. 2. The method of programming a device of claim 1 wherein the first intermediate code comprises at least a first class file having defined therein a first constant pool which is a data structure containing constants used by the first class file and a second class file having defined therein a second constant pool which is a data structure containing constants used by the second class file, wherein the operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code comprises coalescing the first and second class files into one resulting class file by merging the first constant pool from the first class file with the second constant pool from the second class file. 3. The method of programming a device of claim 2 wherein the resulting class file comprises a shared constant pool having constants from each of the first constant pool and the second constant pool. 4. The method of programming a device of claim 2 further comprising removing duplicates of information items found in the first and second constant pools such that the resulting shared constant pool lacks duplication of at least one information item occurring in both the first and second constant pools. 5. The method of programming a device of claim 4 wherein the at least one information item is a string. 6. The method of programming a device of claim 2 , wherein the at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code comprises replacing a first string identifying an object, a class, a field or a method in the first constant pool with an identifier. 7. The method of programming a device of claim 2 further comprising compacting the first and second class files. 8. The method of programming a device of claim 7 wherein the step of compacting the first and second class files comprises mapping string identifiers for an object, class, field, or method of the constant pool with an identifier. 9. The method of programming a device of claim 1 wherein the converting step comprises converting byte codes of the first intermediate code from a first set of byte codes associated with a first machine architecture into a second set of byte codes associated with a second machine architecture. 10. The method of programming a device of claim 9 wherein the first machine architecture is a word stack architecture and the second machine architecture is an architecture other than a word stack architecture. 11. The method of programming a device of claim 9 wherein the second machine architecture is a byte stack architecture. 12. The method of programming a device of claim 9 wherein the first and second machine architectures are virtual machine architectures. 13. The method of programming a device of claim 9 wherein the first machine architecture is a Java Virtual Machine architecture and the second machine architecture is not a Java Virtual Machine architecture. 14. The method of programming a device of claim 13 wherein the first machine architecture is a Java Virtual Machine and the second machine architecture is a Card Java Virtual Machine. 15. The method of programming a device of claim 1 wherein the converting step comprises removal of program parts. 16. The method of programming a device of claim 15 wherein the step of removal of program parts comprises the removal of attributes. 17. The method of programming a device of claim 15 wherein the step of removal of program parts comprises the removal of program parts not necessary for interpretation by the second intermediate code virtual machine. 18. The method of programming a device of claim 15 wherein the step of removal of program parts comprises the removal of parts not necessary for interpretation. 19. The method of programming a device of claim 15 wherein the step of removal of program parts comprises the removal of program parts not supported by the second intermediate code virtual machine. 20. The method of programming a device of claim 1 wherein the second intermediate code comprises a converted form class file, the method further comprising: receiving the converted form class file; processing the converted form class file to produce an application interpretable by the second code virtual machine while the second code virtual machine executes on the device; and storing the produced application interpretable by the second code virtual machine on the device. 21. The method of programming a device of claim 1 further comprising: multiple applications for the device stored on the second memory of the device; receiving, from an input device operable to produce an application selection indication, an application selection indicating which application to execute; and using the second code virtual machine to execute the selected application. 22. The method of programming a device of claim 21 further comprising: receiving an application selection indication from an input device connected to the device. 23. The method of programming a device of claim 22 wherein the input device connected to the processor and operable to provide an application selection indication is a device operable to communicate with the device. 24. The method of programming a device of claim 23 wherein the input device operable to communicate with the device comprises one or more of an automated teller machine, point-of-sale terminal, access control system, system that communicates with an integrated circuit card, or a system that communicates with a microcontroller. 25. The method of programming a device of claim 1 , wherein the at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code comprises replacing a first bytecode associated with an instruction for the first virtual machine with a second bytecode associated with an instruction for the second virtual machine. 26. The method of programming a device of claim 1 , wherein the at least one operation to replace a construct in the first intermediate code with an equivalent construct in the second intermediate code comprises replacing a first bytecode associated with a specific instruction for the first virtual machine with a second bytecode associated with a generic instruction for the second virtual machine. 27. The method of programming a device of claim 1 , wherein the fi
Optimisation · CPC title
Multiple applications on card · CPC title
Interprogram communication · CPC title
Downloading or loading of personalisation data · CPC title
Code layout in executable memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.