(57)【要約】【課題】開発時及び運用時の文字コード環境ＥＵＣ−ＪＰ、シフトＪＩＳ及びＵＴＦ−８に関わらず、アプリケーションプログラムを動作可能とする。【解決手段】開発時には、コンパイル時の文字コード環境が上記３種類のうち前２者の場合は、ソースコード中で記述された定数データをＵＴＦ−８に変換しオブジェクトファイルに出力する手段と、ソースコード中で定義された変数データへの入力及び変数データの出力を行う手続きでは、実行時モジュールを介し入出力を行うオブジェクトコードをオブジェクトファイルに出力する手段とを備えたコンパイラと、運用時には、データ入力時には実行時の文字コード環境が上記３種類のうち前２者である場合、ＵＴＦ−８に変換して入力する手段と、データ出力時には実行時の文字コード環境に合わせ上記３種類のうちいずれかに変換し出力する手段とを備えた実行時モジュールとを有する。【選択図】図１
2009238171.tif 000002
【特許請求の範囲】
【請求項１】
コンパイラおよび実行時モジュールを備え、コンパイル時および実行時の文字コード環境がそれぞれＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれの文字コード環境であっても、生成された実行可能ファイルを動作可能とする、文字コード非依存型開発および運用システムであって、
コンパイラが、コンパイル時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうち、ＥＵＣ−ＪＰまたはシフトＪＩＳである場合は、ソースコード中で記述された定数データをＵＴＦ−８に変換してオブジェクトファイルに出力する手段と、ソースコード中で定義された変数データへの入力および変数データの出力を行う手続きについては、実行時モジュールを介して入出力を行うオブジェクトコードをオブジェクトファイルに出力する手段とを備え、
実行時モジュールが、データ入力時には実行時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちＥＵＣ−ＪＰまたはシフトＪＩＳである場合、ＵＴＦ−８に変換して入力する手段と、データ出力時には実行時の文字コード環境に合わせてＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか一つに変換して出力する手段とを備えることを特徴とする文字コード非依存型開発および運用システム。
【請求項２】
コンパイラおよび実行時モジュールを備え、コンパイル時および実行時の文字コード環境がそれぞれＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれの文字コード環境であっても、生成された実行可能ファイルを動作可能とする、文字コード非依存型開発および運用方法であって、
コンパイラが、コンパイル時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうち、ＥＵＣ−ＪＰまたはシフトＪＩＳである場合は、ソースコード中で記述された定数データをＵＴＦ−８に変換してオブジェクトファイルに出力するステップと、ソースコード中で定義された変数データへの入力および変数データの出力を行う手続きについては、実行時モジュールを介して入出力を行うオブジェクトコードをオブジェクトファイルに出力するステップとを備え、
実行時モジュールが、データ入力時には実行時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちＥＵＣ−ＪＰまたはシフトＪＩＳである場合、ＵＴＦ−８に変換して入力するステップと、データ出力時には実行時の文字コード環境に合わせてＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか一つに変換して出力するステップとを備えることを特徴とする文字コード非依存型開発および運用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム開発時および運用時の日本語文字コード環境がそれぞれＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８のどれであっても、アプリケーションプログラムを問題なく動作させることができる、文字コード非依存型開発および運用システムに関するものである。
【背景技術】
【０００２】
日本語に対応したコンピュータシステムにおいては、そのコンピュータシステムでサポートされている日本語の文字コードは様々であるが、一般的に多くサポートされているのは、ＥＵＣ−ＪＰおよびシフトＪＩＳであり、最近ではＵＴＦ−８もサポートされている。ＥＵＣ−ＪＰは、ＥＵＣ文字符号化方式が用いられた日本語を扱うための文字コードであり、シフトＪＩＳはシフト符号化表現の文字符号化方式が用いられた文字コードの一つである。また、ＵＴＦ−８はＵｎｉｃｏｄｅの文字符号化方式の一つである。特許文献１には、通信時において、送信側と受信側の文字コードが異なる場合は、自動的に文字コードの変換を行うシステムが開示されている。
【０００３】
コンピュータシステムを利用して日本語に対応したアプリケーションプログラムの開発を行う場合、アプリケーションプログラム運用時の文字コード環境を考慮し、運用時と同じ文字コード環境で開発を行う必要がある。例えば、アプリケーションプログラムをＥＵＣ−ＪＰ環境で運用する場合には、開発においてもＥＵＣ−ＪＰ環境で行わなければならない。運用時の文字コード環境とは異なった文字コード環境で開発を行った場合、運用ではアプリケーションプログラムの出力による表示が不当になったり、またはアプリケーションプログラムの異常終了を招くことになる。
【特許文献１】特開２００１−２４９９１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、コンピュータシステムを利用して日本語に対応したアプリケーションプログラムの開発および運用を行う場合、開発時と運用時の文字コード環境を、ＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちのいずれか一つに統一しなければならないのは不便である。当然、開発時には運用時の文字コード環境が明確になっていない場合もあるため、運用時の文字コード環境が明確になった時点で、開発時の文字コード環境と同一でなかった場合は、開発時の文字コード環境を運用時の文字コード環境と同一のものに変更し、アプリケーションプログラムを再作成する必要がある。また、場合によっては運用時に文字コード環境を急遽変更することもありえる。この場合も、運用時の文字コード環境に合わせてアプリケーションプログラムを再作成する必要がある。
【０００５】
本発明の目的は、アプリケーションプログラム開発時および運用時の文字コード環境がそれぞれＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれであっても、アプリケーションプログラムを問題なく動作させることができる文字コード非依存型開発および運用システムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明による文字コード非依存型開発および運用システムは、コンパイラおよび実行時モジュールを備え、コンパイル時および実行時の文字コード環境がそれぞれＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれの文字コード環境であっても、生成された実行可能ファイルを動作可能とするシステムであって、
コンパイラが、コンパイル時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうち、ＥＵＣ−ＪＰまたはシフトＪＩＳである場合は、ソースコード中で記述された定数データをＵＴＦ−８に変換してオブジェクトファイルに出力する手段と、ソースコード中で定義された変数データへの入力および変数データの出力を行う手続きについては、実行時モジュールを介して入出力を行うオブジェクトコードをオブジェクトファイルに出力する手段とを備え、
実行時モジュールが、データ入力時には実行時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちＥＵＣ−ＪＰまたはシフトＪＩＳである場合、ＵＴＦ−８に変換して入力する手段と、データ出力時には実行時の文字コード環境に合わせてＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか一つに変換して出力する手段とを備えることを特徴とする。
【０００７】
また、本発明による文字コード非依存型開発および運用方法は、コンパイラおよび実行時モジュールを備え、コンパイル時および実行時の文字コード環境がそれぞれＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれの文字コード環境であっても、生成された実行可能ファイルを動作可能とする方法であって、
コンパイラが、コンパイル時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうち、ＥＵＣ−ＪＰまたはシフトＪＩＳである場合は、ソースコード中で記述された定数データをＵＴＦ−８に変換してオブジェクトファイルに出力するステップと、ソースコード中で定義された変数データへの入力および変数データの出力を行う手続きについては、実行時モジュールを介して入出力を行うオブジェクトコードをオブジェクトファイルに出力するステップとを備え、
実行時モジュールが、データ入力時には実行時の文字コード環境がＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちＥＵＣ−ＪＰまたはシフトＪＩＳである場合、ＵＴＦ−８に変換して入力するステップと、データ出力時には実行時の文字コード環境に合わせてＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか一つに変換して出力するステップとを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、開発時と運用時の文字コード環境をＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちのいずれか一つに統一する必要がなくなり、ＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類に関しては、文字コード環境を意識せずに開発および運用を行うことが可能となる。
また、生成される実行可能ファイルについては、実行時の文字コード環境をＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８のいずれに変更しても、再作成することなく問題なく動作させることが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施する場合の実施形態を、図面を用いて詳細に説明する。
図１は、本発明の実施形態におけるシステム構成図である。
図１において、開発時の環境１０１は、ソースファイル１０２、コンパイラ１０３、オブジェクトファイル１０６、リンカ１０７、および実行可能ファイル１０８とから構成されている。
運用時の環境１０９は、実行可能ファイル１０８および実行時モジュール１１０とから構成されている。
【００１０】
コンパイラ１０３は、定数データ変換モジュール１０４、および変数データ入出力用オブジェクトコード出力モジュール１０５を装備している。
コンパイラ１０３は、利用者によって実行され、ソースファイル１０２を翻訳し、オブジェクトファイル１０６を生成する。
定数データ変換モジュール１０４は、コンパイラ１０３がソースファイル１０２を翻訳する際、ソースファイル１０２で記述された定数データを翻訳するときに呼出され、コンパイル時の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳの場合には、その定数データの文字コードをＵＴＦ−８に変換する。コンパイル時の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳの場合には、定数データの文字コードをＵＴＦ−８にすることで、生成されるオブジェクトファイル１０６中の定数データを、ＵＴＦ−８に統一できる。
【００１１】
変数データ入出力用オブジェクトコード出力モジュール１０５は、ソースファイル１０２を翻訳する際、ソースファイル１０２に記述された手続きを翻訳するときに呼出され、ソースファイル１０２で定義された変数データへの入力、および定義された変数データの出力を行う手続きについては、実行時モジュール１１０を介して入出力を行うオブジェクトコードを、オブジェクトファイル１０６に出力する。入出力の際には必ず実行時モジュール１１０を介するようにすることで、それ以外のオブジェクトコードはＵＴＦ−８を意識したオブジェクトコードに統一できる。
リンカ１０７は、コンパイラ１０３から起動され、コンパイラ１０３によって生成されたオブジェクトファイル１０６を入力し、実行可能ファイル１０８を生成する。
【００１２】
運用時の環境１０９では、利用者が実行可能ファイル１０８を実行し、実行可能ファイル１０８の入力および出力処理は、実行時モジュール１１０を介して行われる。
実行時モジュール１１０は、入力用データ変換モジュール１１１と出力用データ変換モジュール１１２とから構成されている。
入力用データ変換モジュール１１１は、実行可能ファイル１０８でデータ入力を行う際に呼出され、運用時の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳの場合にはＵＴＦ−８に変換して入力を行う
出力用データ変換モジュール１１２は、実行可能ファイル１０８でデータ出力を行う際に呼出され、運用時の文字コード環境に合わせてＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれかに変換して出力を行う。実行時モジュール１１０でデータの文字コードを変換して入出力を行うことで、入力データの文字コードをＵＴＦ−８に統一でき、また、出力データは運用時の文字コード環境に合わせることができる。
【００１３】
図２は、図１のコンパイラの定数データ変換モジュール１０４のフローチャートである。
定数データ変換モジュール１０４は、まず、現在の文字コード環境がＵＴＦ−８かどうかを調べる（ステップ２０１）。
現在の文字コード環境がＵＴＦ−８の場合は何も処理を行わず終了する。
現在の文字コード環境がＵＴＦ−８ではない場合は、変換対象である定数データを読込む（ステップ２０２）。次に、現在の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳのどちらであるかを調べる（ステップ２０３）。
現在の文字コード環境がＥＵＣ−ＪＰの場合は、読込んだ定数データに対してＥＵＣ−ＪＰからＵＴＦ−８への文字コード変換を行い（ステップ２０４）、変換したデータを格納し（ステップ２０６）、終了する。
一方、現在の文字コード環境がシフトＪＩＳの場合は、読込んだ定数データに対してシフトＪＩＳからＵＴＦ−８への文字コード変換を行い（ステップ２０５）、変換したデータを格納し（ステップ２０６）、終了する。
このように、定数データの文字コードをＵＴＦ−８に統一することで、オブジェクトファイル１０６は、文字コード環境（ＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか）に依存せず共通なものとなる。
【００１４】
図３は、図１のコンパイラの変数データ入出力用オブジェクトコード出力モジュール１０５のフローチャートである。
変数データ入出力用オブジェクトコード出力モジュール１０５は、まず、翻訳対象の手続きがデータ入力またはデータ出力を伴う手続きであるかどうかを調べる（ステップ３０１）。
データ入力またはデータ出力を伴う手続きである場合、それがデータ入力であるかデータ出力であるかを調べる（ステップ３０２）。
データ入力を伴う手続きである場合は、入力用データ変換モジュール１１１を呼出すオブジェクトコードをオブジェクトファイル１０６に出力する（ステップ３０３）。
一方、データ出力を伴う手続きである場合は、出力用データ変換モジュール１１２を呼出すオブジェクトコードをオブジェクトファイル１０６に出力する（ステップ３０４）。
最後に、翻訳対象の手続きに対するオブジェクトコードをオブジェクトファイル１０６に出力する（ステップ３０５）。
このように、データ入出力を伴う手続きの場合は、実行時モジュール１１０を呼出すオブジェクトコードをオブジェクトファイル１０６に出力しておくことで、実行可能ファイル１０８の実行における入出力は、運用時の文字コード環境（ＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか）に依存しないものとなる。
【００１５】
図４は、図１の実行時モジュール１１０における入力用データ変換モジュール１１１のフローチャートである。
実行時モジュール１１０の入力用データ変換モジュール１１１は、実行可能ファイル１０８の実行における入力の際に呼出され、まず、入力対象データを読込む（ステップ４０１）。次に、現在の文字コード環境がＵＴＦ−８か否かを調べる（ステップ４０２）。
現在の文字コードがＵＴＦ−８である場合は、読込んだデータをそのまま格納し（ステップ４０６）、終了する。
現在の文字コードがＵＴＦ−８でない場合は、次に、現在の文字コード環境がＥＵＣ−ＪＰ／シフトＪＩＳのいずれであるかを調べる（ステップ４０３）。
現在の文字コード環境がＥＵＣ−ＪＰの場合は、読込んだデータに対してＥＵＣ−ＪＰからＵＴＦ−８への文字コード変換を行い（ステップ４０４）、変換したデータを格納し（ステップ４０６）、終了する。
一方、現在の文字コード環境がシフトＪＩＳの場合は、読込んだデータに対してシフトＪＩＳからＵＴＦ−８への文字コード変換を行い（ステップ４０５）、変換したデータを格納し（ステップ４０６）、終了する。
このように、運用時の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳの場合でも、データを必ずＵＴＦ−８に変換して入力し、実行可能ファイル１０８内のデータをＵＴＦ−８に統一することで、実行可能ファイル１０８の実行における入力は、運用時の文字コード環境（ＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちのいずれか）に依存しないものとなる。
【００１６】
図５は、図１の実行時モジュール１１０における出力用データ変換モジュール１１２のフローチャートである。
実行時モジュール１１０の出力用データ変換モジュール１１２は、実行可能ファイル１０８の実行における出力の際に呼出され、まず、出力対象データを読込む（ステップ５０１）。次に、現在の文字コード環境がＵＴＦ−８かどうかを調べる（ステップ５０２）。
現在の文字コードがＵＴＦ−８である場合は、読込んだデータをそのまま出力し（ステップ５０６）、終了する。
現在の文字コードがＵＴＦ−８でない場合は、次に、現在の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳのいずれであるかを調べる（ステップ５０３）。
現在の文字コード環境がＥＵＣ−ＪＰの場合は、読込んだデータに対してＵＴＦ−８からＥＵＣ−ＪＰへの文字コード変換を行い（ステップ５０４）、変換したデータを出力し（ステップ５０６）、終了する。
一方、現在の文字コード環境がシフトＪＩＳの場合は、読込んだデータに対してＵＴＦ−８からシフトＪＩＳへの文字コード変換を行い（ステップ５０５）、変換したデータを出力し（ステップ５０６）、終了する。
このように、運用時の文字コード環境がＥＵＣ−ＪＰまたはシフトＪＩＳの場合でも、その文字コード環境に合わせて出力データをＥＵＣ−ＪＰまたはシフトＪＩＳのいずれかに変換して出力する出力用データ変換モジュール１１２により、実行可能ファイル１０８内のデータはＵＴＦ−８に統一することができ、実行可能ファイル１０８の実行における出力は、運用時の文字コード環境（ＥＵＣ−ＪＰ、シフトＪＩＳおよびＵＴＦ−８の３種類のうちいずれか）に依存しないものとなる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態におけるシステム構成図である。
【図２】コンパイラの定数データ変換モジュールのフローチャートである。
【図３】コンパイラの変数データ入出力用オブジェクトコード出力モジュールのフローチャートである。
【図４】実行時モジュールにおける入力用データ変換モジュールのフローチャートである。
【図５】実行時モジュールにおける出力用データ変換モジュールのフローチャートである。
【符号の説明】
【００１８】
１０１…開発時の環境、１０２…ソースファイル、１０３…コンパイラ、１０４…定数データ変換モジュール、１０５…変数データ入出力用オブジェクトコード出力モジュール、１０６…オブジェクトファイル、１０７…リンカ、１０８…実行可能ファイル、１０９…運用時の環境、１１０…実行時モジュール、１１１…入力用データ変換モジュール、１１２…出力用データ変換モジュール
【図１】
2009238171.tif 000003
【図２】
2009238171.tif 000004
【図３】
2009238171.tif 000005
【図４】
2009238171.tif 000006
【図５】
2009238171.tif 000007