Migration of different source languages to an execution medium

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S139000, C717S147000

Reexamination Certificate

active

06810518

ABSTRACT:

This disclosure is based upon, and claims priority from, French patent application No. 9907239, filed Jun. 4, 1999, the contents of which are incorporated herein by reference.
FIELD OF THE INVENTION
The invention relates to smart cards, also referred to as microprocessor cards, and more generally to microprocessor-based programmable open data processing means which are capable of being loaded with applications written in advanced programming languages. The invention is more particularly directed towards the fact that these different languages are heterogeneous in nature, which does not allow an application written in one particular language to be executed by any arbitrary programmable data processing means.
The invention is consequently also directed towards the openness of data processing means. The invention relates to the interoperability of applications written for programmable data processing means, such as the JAVA Card and other operating systems for smart cards. Interoperability is accompanied by requirements in terms of security.
BACKGROUND OF THE INVENTION
In the field of programmable smart cards, each programming source language used for writing an application intended to be loaded into a card is strongly linked to a particular execution medium generally having a software nature, such as a virtual machine, but also having a hardware nature, e.g. a microprocessor.
In order to be able to load a program into a smart card, the program written in a given source language is compiled, and then loaded into a smart card that is intended to receive programs written in the given source language. The card receives the compiled program and executes it by means of an execution medium specially dedicated to the execution of programs initially written in the given source language.
As shown in
FIG. 1
, smart cards Cn each contain a respective execution medium SEn different from those SE
1
to SEN of other smart cards C
1
to CN. The integer n, where 1≦n≦N, designates a predetermined language from a number of source languages LS
1
to LSN. Each card Cn can execute application programs Pn only if they are programmed in the respective source language LSn. Prior to compilation of the program to be loaded, the latter undergoes a code verification in order to check that the program to be loaded does not infringe security features provided by the execution medium SEn associated with the source language LSn.
In fact, in such a set of cards, a program Pn developed in a given source language LSn is intimately linked to the target execution medium SEn on the grounds that:
1) the data structures and the operations provided by the source language LSn are specialized in order to be compiled to a representation optimized in size and speed for the execution medium SEn dedicated to the source language LSn;
2) programming libraries BPn provided with the source language LSn are generally correlated with the source language and optimized for the execution medium SEn dedicated to the source language; and
3) the verification of the program Pn before it is loaded into a card Cn is intimately linked to the security features provided by the target execution medium SEn.
This strong link between a source language LSn and its execution medium SEn is expressed in a verification, compilation and loading chain CVCCn. This chain manages a transformation of a program Pn written in a high-level source language into a compact form ready to be executed efficiently by the execution medium SEn dedicated to the source language LSn.
The general problem at the heart of the invention is the linking of programs written in any one of the different source languages LS
1
to LSN with different execution media SE
1
to SEM, M being any integer equal to or different from the integer N. This general problem can be broken down into the following three sub-problems.
According to the first sub-problem SP
1
, it is desirable, for example, to make a program P written with a source language LSn run on an execution medium SEm dedicated to a given source language LSm, with the index m between 1 and M.
The second sub-problem SP
2
consists in loading programs P
1
to PN, written respectively with different source languages LS
1
to LSN, into a common execution medium SEm capable of providing these different programs with an environment which is efficient in terms of memory size, execution speed, their programming libraries BP
1
to BPM and their security features.
The third sub-problem SP
3
aims to make different programs P
1
to PN, written respectively in different source languages LS
1
to LSN, coexist within a common execution medium SEm. For the third sub-problem, the security of the programs P
1
to PN originating from different programming environments and placed in one and the same physical medium should be dealt with.
In order to solve the three sub-problems SP
1
, SP
2
and SP
3
, which amounts to solving the interoperability of different applications written for example for programmable smart cards with preservation of security and protection and interaction mechanisms, persons skilled in the art could envisage the following three categories of solution which are, however, not entirely satisfactory.
The first solution, the simplest and the most used, consists in rewriting a program Pn, written in a source language LSn dedicated to an execution medium SEn installed in a smart card Cn, as programs Pn
1
and PnM written respectively for example in source languages LS
1
and LSM dedicated to execution media SE
1
and SEM installed in smart cards C
1
and CM, as indicated by write operations W
1
and WM in FIG.
2
.
The first solution has as the main drawback an extensive and tedious manual task for a programmer, consisting in rewriting the algorithm of the program Pn as the programs Pn
1
, PnM which must be adapted to the different data structures and programming libraries BP
1
, BPM for the new source languages LS
1
, LSM. Furthermore, the security mechanisms provided by each of the new execution media SE
1
and SEM require that the code of the rewritten program Pn
1
, PnM be recertified.
The first solution deals solely with the sub-problem SP
1
and thus solves only very partially the problem of program interoperability. Furthermore, if another source language associated with an execution medium other than the execution media SE
1
, SEn and SEM appears in a new card, it is necessary to deal again with all the old programs written in the initial source language LSn in order to rewrite them with the other source language.
The second solution includes a cross-compilation. With reference to
FIG. 3
, let there be for example two programs P
1
and P
2
which are written in respective source languages LS
1
and LS
2
to which are initially dedicated two respective execution media SE
1
and SE
2
in two smart cards C
1
and C
2
after having undergone compilations in verification, compilation and loading chains CVCC
1
and CVCC
2
, they can each be executed conventionally in the execution media SE
1
and SE
2
. However, the programs P
1
and P
2
must be executed in the media SE
2
and SE
1
respectively, and also both of them in a third execution medium SE
3
contained in a third smart card C
3
and dedicated to a third source language LS
3
.
In order to execute the program P
1
, or P
2
, in target execution media SE
2
and SE
3
, or SE
1
and SE
3
, other than the execution medium dedicated to the initial source language LS
1
, or LS
2
, the program P
1
, or P
2
, undergoes compilations in additional verification, compilation and loading chains CVCC
21
and CVCC
31
, or CVCC
12
and CVCC
32
.
Compared with the first solution, the second solution no longer necessitates, on the part of a programmer, manual rewriting of the programs, but requires many verification, compilation and loading chains CVCC
12
, CVCC
21
, CVCC
31
, CVCC
32
to be made available. More generally, for N source languages LS
1
to LSN and M execution media SE
1
to SEM, N*M verification, compilation and loading chains are necessary. These chains necessitate,

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Migration of different source languages to an execution medium does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Migration of different source languages to an execution medium, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Migration of different source languages to an execution medium will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3280426

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.