(57)【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとを有し、メモリ内に格納されたアプリケーションプログラムをＣＰＵによって実行させることにより、種々の処理を行うＩＣカードにおいて、
ＣＰＵに依存しない所定の言語で記述されたアプリケーションプログラムを、外部から取り込み、このアプリケーションプログラムを書換可能なメモリへ格納する第１の機能と、
前記アプリケーションプログラムを前記ＣＰＵが解釈できる形式に翻訳し、これを前記ＣＰＵに実行させる機能をもった解釈実行用プログラムを、外部から取り込み、この解釈実行用プログラムを前記書換可能なメモリへ格納する第２の機能と、
特定のアプリケーションプログラムを選択する指示を、外部から取り込み、選択されたアプリケーションプログラムを、必要な解釈実行用プログラムを利用して、前記ＣＰＵに実行させる第３の機能と、
を有し、
個々のアプリケーションプログラムと、個々の解釈実行用プログラムと、の対応関係を示すデータをメモリに格納するようにし、
特定のアプリケーションプログラムを選択する指示が与えられた場合に、選択されたアプリケーションプログラムの実行に必要な解釈実行用プログラムを、前記対応関係を示すデータに基づいて特定できるようにしたことを特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、
外部から与えられるコマンドに含まれているコマンドコードに基づいて、第１の機能、第２の機能、第３の機能を実行することを特徴とするＩＣカード。
【請求項３】
請求項１または２に記載のＩＣカードにおいて、
個々の解釈実行用プログラムを、それぞれ所定の識別コードとともにメモリに格納するようにし、
個々のアプリケーションプログラムを、それぞれ当該アプリケーションプログラムの実行に必要な特定の解釈実行用プログラムの識別コードとともにメモリに格納するようにし、
特定のアプリケーションプログラムを選択する指示が与えられた場合に、選択されたアプリケーションプログラムとともにメモリに格納されていた識別コードに基づいて、必要な解釈実行用プログラムを特定できるようにしたことを特徴とするＩＣカード。
【請求項４】
請求項１〜３のいずれかに記載のＩＣカードにおいて、
書換不能なメモリと書換可能なメモリとを用意し、
前記書換不能なメモリには、少なくとも１つの解釈実行用プログラムを、標準の解釈実行用プログラムとして予め格納しておき、
前記書換可能なメモリには、前記標準の解釈実行用プログラムとは異なる少なくとも１つの解釈実行用プログラムを格納できるようにしたことを特徴とするＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＩＣカードに関し、特に、ＣＰＵとメモリとを有し、メモリ内に格納されたアプリケーションプログラムをＣＰＵによって実行させることにより、種々の処理を行うＩＣカードに関する。
【０００２】
【従来の技術】
キャッシュカードやクレジットカードとして利用されてきた磁気カードに代わって、光カードやＩＣカードが普及し始めている。特に、ＣＰＵを内蔵したＩＣカードは、高度なセキュリティを確保することができるため、高額な商取引にも利用することができる利点を有する。
【０００３】
現在、一般に利用されているＣＰＵを有するＩＣカードには、メモリとして、ＲＯＭ，ＥＥＰＲＯＭ，ＲＡＭが内蔵されている。通常、ＲＯＭには、ＣＰＵに実行させるべき基本的なプログラムが格納され、ＥＥＰＲＯＭには、ユーザデータや種々のアプリケーションプログラムが格納され、ＲＡＭはＣＰＵの作業領域として利用される。ＥＥＰＲＯＭは書換可能なメモリであるため、ここにユーザごとに必要なデータやアプリケーションプログラムを格納することができる。ＩＣカードに内蔵されたＣＰＵは、いわゆるマシン語のコードを直接実行する。ところが、アプリケーションプログラムは、通常、ＣＰＵに依存しない汎用言語で記述される。したがって、ＣＰＵは、このアプリケーションプログラムを直接解釈して実行することはできない。そこで、一般的なＩＣカードでは、アプリケーションプログラムをＣＰＵが解釈できる形式に翻訳し、これをＣＰＵに実行させる機能をもった解釈実行用プログラム（インタープリタプログラム）が用意されている。
【０００４】
ＩＣカードにデータやプログラムを書き込んだり、これらを読み出したりする際には、いわゆるリーダライタ装置と呼ばれる外部装置が用いられる。この外部装置とＩＣカードとの間では、物理的な伝送線を介してまたは非接触な伝送路を介して、相互にデータやプログラムの伝送が行われる。通常、外部装置からＩＣカードへの情報伝送は、コマンドという形式で与えられ、種々の指示やデータは、このコマンドの中の一情報としてＩＣカード側へと伝えられる。これに対して、ＩＣカードから外部装置への情報伝送は、レスポンスという形式で与えられ、処理結果やデータは、このレスポンスの中の一情報として外部装置側へと伝えられる。
【０００５】
【発明が解決しようとする課題】
前述したように、従来の一般的なＩＣカードでは、ＲＯＭ内の解釈実行用プログラムを用いて、アプリケーションプログラムをマシン語のコードに逐次翻訳し、これをＣＰＵに実行させるという方式が採られている。したがって、ＲＯＭ内の解釈実行用プログラムが解釈可能な所定の言語で記述されたアプリケーションプログラムであれば、これを常にマシン語のコードに翻訳してＣＰＵに実行させることが可能である。しかしながら、このＲＯＭ内の解釈実行用プログラムが対応していない別な言語で記述されたアプリケーションプログラムについては、全く実行することができない。
【０００６】
従来は、同一のＩＣカードで実行させるアプリケーションプログラムは、すべて同一の言語で記述するのが一般的であった。しかしながら、最近は、ＩＣカードの内蔵メモリの集積度も向上してきており、多数のアプリケーションプログラムをＩＣカード内にロードしておき、必要に応じてこれらを選択して実行させるという環境が一般化しつつある。このような環境下では、同一のＩＣカードで実行させるアプリケーションプログラムをすべて同一の言語で記述するという制約は、ソフトウエアの開発効率を低下させる要因となり好ましくない。特に、最近は、ＪＡＶＡ、ＭＥＬ、といったＣＰＵに依存しない種々の汎用言語が普及しつつあり、個々のアプリケーションプログラムごとに、それぞれ最も適した言語を用いて開発が行われるようになってきている。
【０００７】
そこで本発明は、異なる言語で記述されたアプリケーションプログラムを実行することが可能な汎用性をもったＩＣカードを提供することを目的とする。
【０００８】
【課題を解決するための手段】
(1)   本発明の第１の態様は、ＣＰＵとメモリとを有し、メモリ内に格納されたアプリケーションプログラムをＣＰＵによって実行させることにより、種々の処理を行うＩＣカードにおいて、
ＣＰＵに依存しない所定の言語で記述されたアプリケーションプログラムを、外部から取り込み、このアプリケーションプログラムを書換可能なメモリへ格納する第１の機能と、
アプリケーションプログラムをＣＰＵが解釈できる形式に翻訳し、これをＣＰＵに実行させる機能をもった解釈実行用プログラムを、外部から取り込み、この解釈実行用プログラムを書換可能なメモリへ格納する第２の機能と、
特定のアプリケーションプログラムを選択する指示を、外部から取り込み、選択されたアプリケーションプログラムを、必要な解釈実行用プログラムを利用して、ＣＰＵに実行させる第３の機能と、
を設け、
個々のアプリケーションプログラムと、個々の解釈実行用プログラムと、の対応関係を示すデータをメモリに格納するようにし、
特定のアプリケーションプログラムを選択する指示が与えられた場合に、選択されたアプリケーションプログラムの実行に必要な解釈実行用プログラムを、この対応関係を示すデータに基づいて特定できるようにしたものである。
【０００９】
(2)   本発明の第２の態様は、上述の第１の態様に係るＩＣカードにおいて、
外部から与えられるコマンドに含まれているコマンドコードに基づいて、第１の機能、第２の機能、第３の機能を実行できるようにしたものである。
【００１１】
(3)   本発明の第３の態様は、上述の第１または第２の態様に係るＩＣカードにおいて、
個々の解釈実行用プログラムを、それぞれ所定の識別コードとともにメモリに格納するようにし、
個々のアプリケーションプログラムを、それぞれ当該アプリケーションプログラムの実行に必要な特定の解釈実行用プログラムの識別コードとともにメモリに格納するようにし、
特定のアプリケーションプログラムを選択する指示が与えられた場合に、選択されたアプリケーションプログラムとともにメモリに格納されていた識別コードに基づいて、必要な解釈実行用プログラムを特定できるようにしたものである。
【００１２】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係るＩＣカードにおいて、
書換不能なメモリと書換可能なメモリとを用意し、
書換不能なメモリには、少なくとも１つの解釈実行用プログラムを、標準の解釈実行用プログラムとして予め格納しておき、
書換可能なメモリには、標準の解釈実行用プログラムとは異なる少なくとも１つの解釈実行用プログラムを格納できるようにしたものである。
【００１３】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。図１は、一般的なＩＣカード１０と、外部装置（リーダライタ装置）２０との間で、情報の伝送を行っている状態を示すブロック図である。この例では、ＩＣカード１０は、種々の演算処理機能をもったＣＰＵ１１と、外部装置２０に対する情報の送受を行うＩ／Ｏインターフェイス１２と、ＲＯＭ１３，ＥＥＰＲＯＭ１４，ＲＡＭ１５なるメモリとを備えている。ＲＯＭ１３は書換不能な不揮発性メモリであり、ＣＰＵ１１は、このＲＯＭ１３内に格納されている基本プログラムに基づいて所定の処理を実行する。ＥＥＰＲＯＭ１４は、書換可能な不揮発性メモリであり、通常は、ユーザデータや種々のアプリケーションプログラムが格納されるが、本発明では、更に、解釈実行用プログラム（インタープリタプログラム）が格納されることになる。ＣＰＵ１１は、このＥＥＰＲＯＭ１４内のアプリケーションプログラムを、ＥＥＰＲＯＭ１４内の解釈実行用プログラムを利用して実行することができる。ＲＡＭ１５は、ＣＰＵ１１が種々の処理を実行する際の作業領域として利用される書換可能な揮発性メモリである。
【００１４】
ＩＣカード１０と外部装置２０とは、物理的な信号線による接続、赤外線による接続、電磁気を利用した非接触型接続、などの方法によって互いに接続され、情報の送受が行われる。外部装置２０からＩＣカード１０へは、コマンドという形式で情報が送信される。送信されたこのコマンドは、Ｉ／Ｏインターフェイス１２を介してＣＰＵ１１に与えられる。逆に、ＩＣカード１０から外部装置２０へは、与えられたコマンドに対するレスポンスという形式で情報が送信される。このレスポンスは、ＣＰＵ１１からＩ／Ｏインターフェイス１２を介して、外部装置２０へと送信される。
【００１５】
図２は、ＲＯＭ１３内に用意されている基本プログラムの構成例を示すメモリマップである。図示の例では、ＲＯＭ１３内には５つの領域が定義されており、個々の領域には、それぞれ特定の機能を実行するための基本プログラムが格納されている。これらの基本プログラムは、ＣＰＵ１１が直接実行することができるマシン語で記述されている。
【００１６】
まず、通信制御処理領域１３ａには、Ｉ／Ｏインターフェイス１２を介した外部装置２０との通信処理およびリセット後の基本処理を行うための通信制御処理プログラムが格納されている。ＣＰＵ１１は、このプログラムに基づいて、外部装置２０との間での情報の送受に必要な処理を実行することになる。
【００１７】
ロードアプリケーションコマンド処理領域１３ｂには、外部装置２０から、図３(a) に示すようなフォーマットをもった「ロードアプリケーションコマンド」が与えられた場合に実行されるプログラムが格納されている。このプログラムは、ＣＰＵに依存しない所定の言語で記述されたアプリケーションプログラムを、外部装置２０から取り込み、このアプリケーションプログラムをＥＥＰＲＯＭ１４へ格納するための処理プログラムである。図３(a) に示す「ロードアプリケーションコマンド」の先頭の１バイトはコマンドコードであり、当該コマンドが、「ロードアプリケーションコマンド」であることを示す特定の１バイトコードからなる。続く１６バイトには、このアプリケーションの名前を示す文字列が記述される。その次の１バイトであるインタープリタ識別コードは、このアプリケーションプログラムを解釈実行するために必要なインタープリタプログラム（解釈実行用プログラム）を特定するためのコードである。次の２バイトは、後続するアプリケーションプログラムの長さＬａを示すデータであり、この後に、長さＬａバイトのアプリケーションプログラム本体が続くことになる。
【００１８】
一方、ロードインタープリタコマンド処理領域１３ｃには、外部装置２０から、図３(b) に示すようなフォーマットをもった「ロードインタープリタコマンド」が与えられた場合に実行されるプログラムが格納されている。このプログラムは、特定の言語で記述されたアプリケーションプログラムをＣＰＵ１１が解釈できる形式に翻訳し、これをＣＰＵ１１に逐次実行させる機能をもったインタープリタプログラム（解釈実行用プログラム）を、外部装置２０から取り込み、このインタープリタプログラムをＥＥＰＲＯＭ１４へ格納するための処理プログラムである。図３(b) に示す「ロードインタープリタコマンド」の先頭の１バイトはコマンドコードであり、当該コマンドが、「ロードインタープリタコマンド」であることを示す特定の１バイトコードからなる。次の１バイトであるインタープリタ識別コードは、このインタープリタプログラムを特定するためのコードであり、個々のインタープリタプログラムごとにそれぞれユニークなコードが付与される。次の２バイトは、後続するインタープリタプログラムの長さＬｉを示すデータであり、この後に、長さＬｉバイトのインタープリタプログラム本体が続くことになる。
【００１９】
また、アプリケーション選択コマンド処理領域１３ｄには、外部装置２０から、図３(c) に示すようなフォーマットをもった「アプリケーション選択コマンド」が与えられた場合に実行されるプログラムが格納されている。このプログラムは、特定のアプリケーションプログラムを選択する指示を、外部装置２０から取り込み、選択されたアプリケーションプログラムを、必要な解釈実行用プログラムを利用して、ＣＰＵ１１に実行させるための処理プログラムである。図３(c) に示す「アプリケーション選択コマンド」の先頭の１バイトはコマンドコードであり、当該コマンドが、「アプリケーション選択コマンド」であることを示す特定の１バイトコードからなる。次の１６バイトには、選択対象となる特定のアプリケーションの名前を示す文字列が記述される。
【００２０】
なお、この実施形態では、ＲＯＭ１３内に、更に、標準インタープリタ格納領域１３ｅが設けられており、この領域には、いわゆるデフォルトとして利用される標準インタープリタに関するデータおよびプログラムが格納されている。この領域内の先頭の１バイトには、インタープリタ識別コード（たとえば、Ｆ０）が格納されており、次の２バイトには、インタープリタプログラムの長さ（この例の場合、Ｌｉ０）が格納されており、続くＬｉ０バイトの領域には、インタープリタプログラムの本体部分（ＣＰＵ１１が直接実行できるマシン語のプログラム）が格納されている。ここでは、このインタープリタプログラムが、デフォルトとして利用される標準インタープリタとなっているため、第０番目のインタープリタと呼ぶことにし、そのプログラム本体を、インタープリタプログラム０と呼ぶことにする。インタープリタ識別コードとして設定された「Ｆ０」は、この第０番目のインタープリタについての識別コードであり、インタープリタプログラムの長さとして設定された「Ｌｉ０」は、インタープリタプログラム０の長さを示すものである。
【００２１】
後述するように、本発明に係るＩＣカードでは、ＥＥＰＲＯＭ１４内に所望のインタープリタプログラムをロードして用いることができるので、図２に示す標準インタープリタ格納領域１３ｅは必ずしも必要なものではない。別言すれば、ＲＯＭ１３内にインタープリタプログラム０を用意しておかなくても、ＥＥＰＲＯＭ１４内にロードしたインタープリタプログラムを利用することができるので問題は生じない。ただ、ＥＥＰＲＯＭ１４が書換可能なメモリであるのに対し、ＲＯＭ１３は書換不能な固定されたメモリであるため、この実施形態のように、ＲＯＭ１３内にデフォルトとして利用される標準インタープリタを用意しておけば、万一、ＥＥＰＲＯＭ１４内の情報が事故で消滅した場合であっても、少なくともＲＯＭ１３内の標準インタープリタはいつでも利用できる状態になるという利点が得られる。
【００２２】
図４は、上述した「ロードアプリケーションコマンド」および「ロードインタープリタコマンド」を実行した後のＥＥＰＲＯＭ１４内の状態の一例を示すメモリマップである。図示の例では、ＥＥＰＲＯＭ１４内には、アプリケーション登録領域１４ａ、インタープリタ登録領域１４ｂ、データ記録領域１４ｃが設けられている。
【００２３】
アプリケーション登録領域１４ａは、「ロードアプリケーションコマンド」の実行により、外部装置２０からロードしたアプリケーションプログラムを登録するための領域であり、図示の例では、３つのアプリケーションＸ〜Ｚが登録された状態が示されている（アプリケーションＹの登録領域の図示は省略）。図３(a) に示すようなフォーマットをもった１つの「ロードアプリケーションコマンド」を実行することにより、１つのアプリケーションが登録されることになる。図４に示すアプリケーション登録領域１４ａの先頭に格納された１６バイトからなるアプリケーションの名前、次の１バイトからなるインタープリタ識別コード、その次の２バイトからなるアプリケーションプログラムの長さ、そしてこれに後続するアプリケーションプログラムの本体は、いずれも、図３(a) に示す「ロードアプリケーションコマンド」内に含まれていた情報である。
【００２４】
この図４に示す例では、アプリケーションＸは、識別コード「Ｆ２」で示される第２番目のインタープリタによって解釈実行が可能な言語で記述されており、プログラム本体の長さはＬａＸバイトであり、アプリケーションＺは、識別コード「Ｆ０」で示される第０番目のインタープリタ（デフォルト設定された標準インタープリタ）によって解釈実行が可能な言語で記述されており、プログラム本体の長さはＬａＺバイトである。このように、アプリケーションＸとＺとは、それぞれ異なる言語によって記述されたプログラムであるが、本発明に係るＩＣカードでは、このように異なる言語で記述されたアプリケーションプログラムを支障なく実行することができる。
【００２５】
インタープリタ登録領域１４ｂは、「ロードインタープリタコマンド」の実行により、外部装置２０からロードしたインタープリタプログラムを登録するための領域であり、図示の例では、２つのインタープリタプログラム１および２が登録された状態が示されている。図３(b) に示すようなフォーマットをもった１つの「ロードインタープリタコマンド」を実行することにより、１つのインタープリタが登録されることになる。図４に示すインタープリタ登録領域１４ｂの先頭に格納された１バイトからなるインタープリタ識別コード、その次の２バイトからなるインタープリタプログラムの長さ、そしてこれに後続するインタープリタプログラムの本体は、いずれも、図３(b) に示す「ロードインタープリタコマンド」内に含まれていた情報である。
【００２６】
この図４に示す例では、第１のインタープリタは、識別コード「Ｆ１」で示され、長さＬｉ１バイトからなるインタープリタプログラム１から構成され、第２のインタープリタは、識別コード「Ｆ２」で示され、長さＬｉ２バイトからなるインタープリタプログラム２から構成されている。前述したように、本実施形態では、図２に示すように、ＲＯＭ１３内の標準インタープリタ格納領域１３ｅ内に既に第０のインタープリタが格納されているので、この例では、合計３組のインタープリタがＩＣカードに用意されていることになり、合計３種類の言語で記述されたアプリケーションプログラムを解釈して実行することができる。
【００２７】
なお、データ記録領域１４ｃは、ユーザデータや管理データを格納するための領域であり、アプリケーションＸ〜Ｚは、これらのデータを用いて所定の処理を実行することになる。
【００２８】
さて、ＥＥＰＲＯＭ１４内に、図４に示すように、所定のアプリケーションプログラムおよびインタープリタプログラムがロードされた状態になれば、外部装置２０側から、図３(c) に示すようなフォーマットの「アプリケーション選択コマンド」を与えることにより、ロードしたアプリケーションＸ〜Ｚのうちの１つを選択して実行することが可能である。これは、個々のアプリケーションプログラムと、個々のインタープリタプログラムとの対応関係を示すデータが、識別コードとしてＥＥＰＲＯＭ１４内に格納されているため、選択されたアプリケーションプログラムの実行に必要なインタープリタプログラムを、この対応関係を示す識別コードに基づいて特定できるからである。
【００２９】
たとえば、アプリケーションＸを選択するコマンドを与えた場合、ＥＥＰＲＯＭ１４内のアプリケーション登録領域１４ａ内のアプリケーションプログラムＸが実行されることになるが、このとき、このアプリケーションＸの実行に必要なインタープリタプログラムの識別コード「Ｆ２」が格納されているので、ＲＯＭ１３内の標準インタープリタ格納領域およびＥＥＰＲＯＭ１４内のインタープリタ登録領域１４ｂを検索することにより、識別コード「Ｆ２」が付与されたインタープリタプログラム２を特定することができる。かくして、アプリケーションプログラムＸは、第２のインタープリタプログラム２を利用することにより解釈実行されることになる。同様に、アプリケーションＺを選択するコマンドを与えた場合は、識別コード「Ｆ０」が付与された第０のインタープリタプログラム０（ＲＯＭ１３内に格納されている標準インタープリタ）を利用して、アプリケーションプログラムＺが解釈実行されることになる。
【００３０】
最後に、図５および図６の流れ図を参照しながら、このＩＣカード１０内で実行される処理動作を説明する。まず、ＩＣカード１０が外部装置２０に接続された段階で、ＩＣカード１０内のＣＰＵ１１がリセットされ、通信制御処理領域１３ａ内の基本プログラムが実行される。そして、ステップＳ１において、このリセットに対してＡＴＲ（Answer To Reset ）なるレスポンスが、外部装置２０側へと返される。外部装置２０側では、このＡＴＲを受信した後、所望のコマンドを送信することになる。ＩＣカード１０は、ステップＳ２において、コマンドの受信を確認し、コマンドを受信するまで待機状態となる。外部装置２０側からコマンドが与えられると、そのコマンドの先頭１バイトに相当するコマンドコードを認識し、このコマンドコードに基づいて、与えられたコマンドがどのようなコマンドであるかを把握し、必要な処理を実行する。
【００３１】
与えられたコマンドが、図３(a) に示すような「ロードアプリケーションコマンド」であった場合には、ステップＳ３からステップＳ４へと進み、ＲＯＭ１３内のロードアプリケーションコマンド処理領域１３ｂ内に用意されたマシン語プログラムに基づいて、ＥＥＰＲＯＭ１４内のアプリケーション登録領域１４ａ内に、与えられたアプリケーションに関する情報をロードする処理を行う。また、与えられたコマンドが、図３(b) に示すような「ロードインタープリタコマンド」であった場合には、ステップＳ５からステップＳ６へと進み、ＲＯＭ１３内のロードインタープリタコマンド処理領域１３ｃ内に用意されたマシン語プログラムに基づいて、ＥＥＰＲＯＭ１４内のインタープリタ登録領域１４ｂ内に、与えられたインタープリタに関する情報をロードする処理を行う。外部装置２０側では、まず、「ロードアプリケーションコマンド」および「ロードインタープリタコマンド」をＩＣカード１０側に与え、ＥＥＰＲＯＭ１４内に必要なアプリケーションおよびインタープリタをロードする処理を行い、たとえば、図４のメモリマップに示すような状態にする。
【００３２】
このような準備が整ったら、実行させたい所望のアプリケーションを選択するために、外部装置２０側からＩＣカード１０側へ、図３(c) に示すような「アプリケーション選択コマンド」を与える。このようなコマンドが与えられた場合には、ステップＳ７からステップＳ８へと進み、ＲＯＭ１３内のアプリケーション選択コマンド処理領域１３ｄ内に用意されたマシン語プログラムに基づいて、ＥＥＰＲＯＭ１４内のアプリケーション登録領域１４ａ内にロードされているアプリケーションを検索し、選択コマンドで指定された名前と一致するアプリケーションを該当アプリケーションとして選択する処理を行う。
【００３３】
なお、与えられたコマンドが、図３に示す３つのコマンドのいずれでもなかった場合には、これを特定のアプリケーションプログラムに対するコマンドであると認識し、まず、ステップＳ９において、選択済のアプリケーションの有無が調べられる。既にアプリケーションの選択が行われている場合には、ステップＳ１０へと進み、当該アプリケーションが実行される。一方、アプリケーションの選択が行われていない場合には、ステップＳ９からステップＳ１１へと進み、「与えられたコマンドは解釈できない」旨のエラーがセットされる。かくして、最終的に、ステップＳ１２において、与えられたコマンドに対する処理結果を示すレスポンスを、外部装置２０に対して送信した後、ステップＳ２へと戻り、次のコマンド受信を待つ状態になる。エラーがセットされていた場合には、ステップＳ１２では、エラーを示すレスポンスが送信されることになる。
【００３４】
図６は、ステップＳ１０のアプリケーション実行処理の手順を詳細に示す流れ図である。まず、ステップＳ１３において、選択されたアプリケーションの「インタープリタ識別コード」とＲＯＭ１３内の標準インタープリタの「インタープリタ識別コード」とが比較され、両者が一致していた場合（すなわち、選択されたアプリケーションが、デフォルトとなる言語で記述されていた場合）、ステップＳ１４からステップＳ１５へと進み、ＲＯＭ１３内の標準インタープリタプログラム０が実行され、与えられたコマンドの解釈実行が行われる。一方、不一致の場合（すなわち、選択されたアプリケーションが、デフォルトとなる言語以外の言語で記述されていた場合）、ステップＳ１４からステップＳ１６へと進み、選択されたアプリケーションの「インタープリタ識別コード」と同一の「インタープリタ識別コード」をもつインタープリタプログラムを、ＥＥＰＲＯＭ１４内から検索する処理が行われる。そして、該当するインタープリタがあれば、ステップＳ１７からステップＳ１８へと進み、ＥＥＰＲＯＭ１４内のこの該当インタープリタプログラムを実行することにより、与えられたコマンドの解釈実行が行われる。一方、該当するインタープリタがなければ、選択されたアプリケーションプログラムは、現時点では解釈実行することができないので、ステップＳ１７からステップＳ１９へと進み、「実行に必要なインタープリタが存在しない」旨のエラーをセットする。このエラーは、ステップＳ１２において、レスポンスとして送信されることになる。
【００３５】
以上、本発明を図示する実施形態に基づいて説明したが、本発明はこの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。たとえば、上述の実施形態では、アプリケーションプログラムやインタープリタプログラムをＥＥＰＲＯＭ１４内にロードするようにしているが、これらをＲＡＭ１５内にロードするようにしてもかまわない（この場合は、ＩＣカードの電源が切れると、ロードした内容は失われるので、次回に再びロードする処理が必要になる）。また、上述の実施形態では、アプリケーションプログラムについての解釈実行用プログラムとして、逐次実行型のインタープリタプログラムを用いた例を述べたが、マシン語への翻訳をまとめて行った後にこれを実行させるようなコンパイラプログラムを用いてもかまわない。更に、上述の実施例では、ＥＥＰＲＯＭ１４内に複数のアプリケーションプログラムをロードして用いる形態を述べたが、ＥＥＰＲＯＭ１４内に単一のアプリケーションをロードする利用形態にも本発明は適用可能である。この場合、アプリケーション選択コマンドによる選択は、多数のアプリケーションの中から１つのアプリケーションを選ぶという意味ではなく、当該単一のアプリケーションプログラムを起動状態にするという意味になる。
【００３６】
【発明の効果】
以上のとおり本発明に係るＩＣカードによれば、任意の言語に対応した解釈実行用プログラムを必要に応じてメモリ内にロードできるようにしたため、任意の言語で記述されたアプリケーションプログラムを実行することが可能になる。
【図面の簡単な説明】
【図１】一般的なＩＣカード１０と、外部装置（リーダライタ装置）２０との間で、情報の伝送を行っている状態を示すブロック図である。
【図２】本発明に係るＩＣカード内のＲＯＭに用意されている基本プログラムの構成例を示すメモリマップである。
【図３】本発明に係るＩＣカードに与える３つのコマンドのフォーマットを示す図である。
【図４】本発明に係るＩＣカード内のＥＥＰＲＯＭの状態の一例を示すメモリマップである。
【図５】本発明に係るＩＣカードの動作を示す第１の流れ図である。
【図６】本発明に係るＩＣカードの動作を示す第２の流れ図である。
【符号の説明】
１０：ＩＣカード
１１：ＣＰＵ
１２：Ｉ／Ｏインターフェイス
１３：ＲＯＭ
１３ａ：通信制御処理領域
１３ｂ：ロードアプリケーションコマンド処理領域
１３ｃ：ロードインタープリタコマンド処理領域
１３ｄ：アプリケーション選択コマンド処理領域
１３ｅ：標準インタープリタ格納領域
１４：ＥＥＰＲＯＭ
１４ａ：アプリケーション登録領域
１４ｂ：インタープリタ登録領域
１４ｃ：データ記録領域
１５：ＲＡＭ
２０：外部装置（リーダライタ装置）
【図１】
0004071377.tif 000002
【図２】
0004071377.tif 000003
【図３】
0004071377.tif 000004
【図４】
0004071377.tif 000005
【図５】
0004071377.tif 000006
【図６】
0004071377.tif 000007