JPH0683572A - 文字及びコード変換のための翻訳システム及び方法 - Google Patents

文字及びコード変換のための翻訳システム及び方法

Info

Publication number
JPH0683572A
JPH0683572A JP5006594A JP659493A JPH0683572A JP H0683572 A JPH0683572 A JP H0683572A JP 5006594 A JP5006594 A JP 5006594A JP 659493 A JP659493 A JP 659493A JP H0683572 A JPH0683572 A JP H0683572A
Authority
JP
Japan
Prior art keywords
state
translation
field
entry
activity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5006594A
Other languages
English (en)
Other versions
JP2575578B2 (ja
Inventor
Lawrence E Larson
ローレンス・エドワード・ラーソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0683572A publication Critical patent/JPH0683572A/ja
Application granted granted Critical
Publication of JP2575578B2 publication Critical patent/JP2575578B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Devices For Executing Special Programs (AREA)
  • Machine Translation (AREA)

Abstract

(57)【要約】 【目的】極めて複雑な翻訳タスクを処理するのに十分に
強力な翻訳手法を提供することにある。 【構成】コンピュータ・システムでの使用に適合する本
発明の翻訳システムは、状態機械を定義するインタープ
リタ及び翻訳テーブルを具備する。 【効果】本発明によれば、異なる翻訳機能を与えるため
に動的な変更を容易に行なうことが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にディジタル・コン
ピュータ・システム、より詳しくは前記システム内で用
いる文字又はコードの翻訳機構(トランスレータ)に関す
る。
【0002】
【従来の技術】ディジタル・コンピュータ・システムで
は、しばしば文字又はコードを他の文字又はコードに翻
訳することが要求される。翻訳によって生成される文字
の数は入力文字の数と異なる場合がある。この一般的な
翻訳機能は既存のデータ・ファイルとともに用いること
ができ、かつキーボード又はプリンタのような入出力装
置と授受される文字の翻訳にも用いることができる。
【0003】一般に、前記翻訳を実行する手順は、特定
のアプリケーションについて一意的にコード化される。
もし単一の文字間だけの翻訳であれば、索引(look up)
テーブルを用いることができる。しかしながら、もし複
数の入力文字を1又は2以上の出力文字に翻訳するよう
な、より複雑な翻訳が要求されれば、前記索引テーブル
は十分ではない。よって、翻訳に関する情報は一般に翻
訳手順にハード・コード化されたものとなる。
【0004】トランスレータが考慮中の特定のタスクと
ともに記述されると、それらを他の類似の翻訳タスクと
ともに用いるために変更することはたいてい困難であ
る。例えば、キーボード・デコーダは、キーボード走査
コードを、コンピュータ・システムに入力する文字に翻
訳するのに用いることができる。異なる国のアルファベ
ットは一般に僅かに異なるアルファベットを用いるの
で、国毎に異なるデコーダが記述されなければならな
い。いくつかの国に用いることを意図するシステムにつ
いては、異なるキーボード・デコーダを別個に生成する
ことは高価な上に時間がかかり、突きとめるのが難しい
微妙なエラーの生成につながることがある。
【0005】ハード・コード化されたトランスレータの
もう1つの問題は、それらを動的に変更することがたぶ
んに容易ではないことである。一例として、第1の国の
文字セットで記述されたファイルを、第2の国の文字セ
ットで記述されたファイルに翻訳することがユーザにと
って望ましいことがある。そして、これらのファイルの
どちらかを第3の国の文字セットに翻訳することが望ま
しいことがある。トランスレータの各々を使用可能にす
る要求の外に、ユーザは実行される翻訳毎に異なるトラ
ンスレータを呼出さなければならない。これはユーザの
仕事を複雑なものにし、望ましくない非効率をもたらす
ことがある。
【0006】
【発明が解決しようとする課題】本発明の目的は極めて
複雑な翻訳タスクを処理するのに十分に強力な翻訳手法
を提供することである。更に、本発明の目的は異なる翻
訳機能を与えるために動的な変更を容易に行ないうるよ
うなトランスレータを提供することである。
【0007】
【課題を解決するための手段】本発明によれば、コンピ
ュータ・システムで用いるのに適合するトランスレータ
が状態機械を定義するインタープリタ(interpreter) 及
び翻訳テーブルを提供する。インタープリタは、翻訳テ
ーブルで定義された状態機械の状態を介して処理を進
め、入力文字又はコードを出力文字又はコードに翻訳す
る動作を実行する。インタープリタは一定であり、実行
される翻訳の定義に影響を及ぼさない。翻訳機能は翻訳
テーブル内で全体が定義されているので、インタープリ
タが異なる翻訳テーブルの使用を選択することは異なる
翻訳機能を選択することを意味する。所要の活動(actio
n)の全ては翻訳テーブルで定義され、外部手順の追加は
必要としない。
【0008】
【実施例】図1は入力文字のストリング10を出力文字の
ストリング12に翻訳する機能を高レベルで示す。翻訳は
トランスレータ14で実行される。当業者には理解されて
いるように、翻訳機能は簡単でもよく複雑でもよい。比
較的簡単な翻訳の例は、コンピュータ・システムに接続
されたキーボードからのキーボード走査コードの、キー
ボード・キーに示す文字に対応する内部コードへの変換
を含む。他の比較的簡単な例は、あるシステムは合字(l
igature)の使用を直にサポートするが他のシステムは合
字の使用をサポートしないといった、2つの異なるシス
テムで用いるテキスト・ファイルでの一定の合字の変換
である。
【0009】更に複雑な翻訳の例はテキスト・ファイル
に埋め込まれた制御コードの、プリンタ制御に適合する
コマンドへの翻訳を含む。テキスト・ファイルが異なる
プリンタに送られるときは、トランスレータ14の変更だ
けが必要であり、プリンタのタイプに関係なくテキスト
・ファイルに組み込まれた制御コードは同じままであ
る。
【0010】一般にトランスレータ14がキーボード走査
コードをデコード(decode)するときにそうであるよう
に、トランスレータ14は一度に1つの入力文字又はコー
ドを用いることが意図されていることも当業者には理解
されるであろう。テキスト・ファイル文字を、所定のプ
リンタの使用に適合するコードに変換するのに、トラン
スレータ14が用いられるとき、より長い入力文字のスト
リング10をトランスレータ14に供給し、トランスレータ
14に1つの手順を要求する結果として多数の文字の操作
を可能にすることがより一般的である。以下に説明する
トランスレータはどちらのタイプの状況でも同等の機能
で用いることができる。
【0011】図2で、トランスレータはコンピュータ・
システム18内の走査コード・デコーダ16として用いられ
る。キーボード20はコンピュータ・システム18に接続さ
れ、キーボード走査コードはデコーダ16に供給される。
デコーダ16は走査コードを文字に翻訳してそれらをバッ
ファ22に入れる。技術的に知られているように、バッフ
ァ22からそれらがアプリケーション・プログラム24によ
り取出される。走査コード・デコーダ16は下記の記述に
従っていくつかの方法で実現できる。それは、単に、キ
ーボード走査コードを受取るとき割込みハンドラ(handl
er) として呼出されるか、又は多重処理システムでアプ
リケーション・プログラム24と並列に動作するソフトウ
ェア手順であるかも知れない。
【0012】デコーダ16はハードウェアでも実現でき
る。後で説明するように、それは翻訳テーブルをアクセ
スする簡単な状態機械(state machine) として実現でき
る。翻訳テーブルは ROMに記憶し、又はデコーダ16によ
りアクセスされたRAM にダウンロードすることができ
る。下記の説明から明らかなように、翻訳テーブルをRA
Mにダウンロードすると、走査コード・デコーダ16の機
能をかなり容易に変更できる。
【0013】図3はトランスレータ14のブロックを示
す。トランスレータ14はインタープリタ26及び翻訳テー
ブル28を備える。図5に関連して記述されるように、イ
ンタープリタ26は短いループによる比較的簡単な状態機
械トランスレータである。翻訳テーブル28はトランスレ
ータ14の実際の翻訳機能を含む。翻訳テーブル28を変更
することは、インタープリタ26の変更を必要とせずにト
ランスレータ14の翻訳機能を変更することである。イン
タープリタ26は比較的簡単な機能であり、そして翻訳テ
ーブル28に含まれたデータに関係なく同じように動作す
るから、インタープリタ26は性能を最適化するように
(ハードウェアで)構築するか又は (ソフトウェアで) コ
ード化することができる。
【0014】翻訳テーブル28に加えて、インタープリタ
26は入力ストリング30及び出力ストリング32を含むデー
タ構造もアクセスする。原始ポインタ(SPTR)は入力スト
リング30から読取られる現在の文字のロケーションを指
し、目標ポインタ(TPTR)は出力ストリング32に文字を書
込むために次に使用できるロケーションを指す。入力ス
トリング30及び出力ストリング32の現在の長さを表わす
スクラッチ・パッド・メモリ及びカウンタを含む追加デ
ータ構造は図3に示されていないが、インタープリタ26
によりアクセスできる。以下に詳細に記述されるこれら
の追加データ構造の使用は当業者には容易に理解される
であろう。
【0015】翻訳テーブル28は多数のエントリ、即ち行
(row) を含むテーブルである。各エントリは状態機械の
特定の状態を定義する。インタープリタ26は入力ストリ
ング30に含まれた入力に応答して翻訳テーブル28により
定義された状態機械を通して処理を進め、出力ストリン
グ32を生成する。翻訳テーブル28内の各エントリは所与
の状態に関連した活動を定義するのに必要な情報の全て
を含むので、インタープリタ26は翻訳機能を実行するた
めに翻訳テーブル28内のエントリを一度に1つだけ解釈
するだけでよい。
【0016】この良好な実施例の記述は入力ストリング
及び出力ストリングについて説明するけれども、単一の
文字の入力及び(又は)出力が使用されうることが当業者
には理解されるであろう。例えば、もしトランスレータ
14がコンピュータ・システム18内の割込み手順として実
現された走査コード・デコーダ16であれば、一般に、そ
れはハードウェア・バッファで使用可能にされた単一の
走査コードをアクセスするように書込まれる。従って、
ストリングに関する下記の記述は単一の文字の使用も含
むことが当業者には理解されるであろう。入力及び出力
のストリング及び文字は、メモリ・システムに配置され
ているものとして記述されるが、種々のバッファ及びレ
ジスタに常駐させることもできる。
【0017】図4は翻訳テーブル28内の各エントリ34の
望ましいフォーマットを示す。各エントリ34は現状態フ
ィールド36、入力コード・フィールド38、次状態フィー
ルド40、出力コード・フィールド42及び幾つかの活動フ
ィールド44を含む。現状態フィールド36は単に種々のシ
ステム状態の識別に用いる識別子であることが望まし
い。入力コード・フィールド38は入力ストリング30から
取得された現在の文字に適合するコードを含む。現状態
フィールド36及び入力コード・フィールド38は合わせて
翻訳テーブル28内のエントリ34を識別する特定の状態を
定義する。
【0018】次状態フィールド40は現在の状態について
定義された活動の実行後にトランスレータ14が開始する
次状態を表わす識別子を含む。出力コード・フィールド
42は出力ストリング32に入れるべき出力コードを含む。
活動フィールド44は、現状態フィールド36及び入力コー
ド・フィールド38により定義された状態になると、イン
タープリタ26が実行する多数の所望の動作を包含でき
る。例えば、これらの活動には、入力ストリング・ポイ
ンタSPTR及び出力ストリング・ポインタTPTRの増分を包
含できる。あるいは入力ストリング30及び出力ストリン
グ32の長さを追跡するためにインタープリタ26により用
いられる種々のカウンタの増分及び減分も包含できる。
【0019】1つの実施例で、トランスレータ14は別の
アプリケーションから呼出される手順(procedure) とし
て実現できる。この手順に渡されたパラメータは入力ス
トリングに対する原始ポインタ(SPTR)及び出力ストリン
グに対する目標ポインタ(TPTR)を含む。このパラメータ
は入力ストリング領域及び出力ストリング領域の長さを
表わす数、及びこの手順呼出し中に用いられる翻訳テー
ブル28を指すポインタも含む。異なる翻訳テーブル28が
インタープリタ26の各々の呼出し中に用いられるから、
トランスレータ14はかなり柔軟なものにすることができ
る。
【0020】IBM社から市販されたコンピュータ・シ
ステムOS/2上でコード・ページ間の文字単位の翻訳
の実行に用いられた前述のタイプの手順で、下記のテー
ブル1に示された活動フィールドは、トランスレータ14
の活動を完全に定義するのに十分なことを証明した。こ
れらの活動は、前記システムの基礎的な性質を変えず
に、特定の実施例に従って望まれたように変更し、かつ
追加の活動を付加することができる。テーブル1に示す
ように、原始ポインタ(SPTR)及び原始ストリング長カウ
ンタ(LSPTR) の変更を決めるために2ビット割当てるこ
とができる。原始ポインタ(SPTR)により指定されたロケ
ーションからインタープリタのデータ作業領域に(もし
あれば)何バイトを取出すかを決めるために更に2ビッ
トが割当てられる。目標ポインタ(TPTR)での動作及び割
当てられた目標ストリング領域の残りの長さ(DTPTR) を
表わすカウンタを決めるために2ビットが割当てられ
る。
【0021】各状態がインタープリタ26によって実行さ
れると、各フィールドでコード化された活動が実行され
る。ポインタの値を0に変更する活動が用いられ、トラ
ンスレータ14の内部状態が変わる間はSPTR又はTPTRを増
減しないままにしておく。テーブル1に示すように、出
力コード(CCODE2)は常に出力ストリング32に移動され
る。しかしながら、もしこれがポインタTPTRを増分せず
に行なわれれば、出力ストリング32書込まれる次の文字
は前に書込まれた文字に上書きされることになる。これ
は、状態が変わる毎に識別可能な出力文字を生成するこ
となく、トランスレータ14の内部状態を変えることがで
きるという効果を有する。
【0022】テーブル 1 2ビットの割当て: ・SPTRを0増分し、LSPTRを0減分する ・SPTRを1増分し、LSPTRを1減分する ・SPTRを2増分し、LSPTRを2減分する 2ビットの割当て: ・SPTRを介して0バイトを取出す ・SPTRを介して1バイトを取出す ・SPTRを介して2バイトを取出す 2ビットの割当て: ・TPTRが指す領域にCCODE2を移動し、TPTRの増分、LTPT
Rの減分はしない ・TPTRが指す領域にCCODE2を移動し、TPTRを1増分し、
LTPTRを1減分する ・TPTRが指す領域にCCODE2を移動し、TPTRを2増分し、
LTPTRを2減分する
【0023】インタープリタ26は図5の流れ図に従って
動作する。最初にインタープリタ26が呼出されると、状
態が0に初期化される。これはインタープリタ26の動作
を初期化する。次のステップ52で、データが使用できる
かどうかが検査される。もし使用できるデータがなけれ
ば、入力ストリング又は出力ストリングのために取って
おいたデータ領域を使い尽くしたか、Cプログラミング
言語で用いる ^/0^ 終止符のようなストリング文字の特
別な終了を読取ったかを示し、インタープリタ26の動作
は終了する。もし翻訳機能が終了していなければ、現在
の特定の状態を決定するために、ステップ54で、読取り
中のトランスレータ14の現状態が翻訳テーブル28内の各
エントリの現状態フィールド36及び入力コード・フィー
ルド38と突合わされる。対応するエントリ内に含まれた
指示された動作がステップ56で実行され、制御はステッ
プ52に戻る。
【0024】かなり簡単な翻訳でもかなり多数の行を有
する翻訳テーブルを必要とするから、テーブル内の全て
の可能な状態の簡単な線形走査は一致する特定の状態を
決定するのに不十分なことがありうる。技術的によく知
られているように、テーブル探索を高速化する多くの手
法がある。例えば、これらはテーブル索引手法、ハッシ
ュ(hash)手法、等の種々の手法を含む。適切な探索手法
はどれもインタープリタ26で用いることができ、一般
に、トランスレータ14に要求される性能上のトレードオ
フは、使用されるテーブル探索アルゴリズムの複雑さを
決定する。インタープリタ26は変わらないから、慎重に
コード化され、テーブルをアクセスするとき最大速度を
得ることができる。
【0025】図6乃至図9は簡単な翻訳に使用できる翻
訳テーブル28の例の部分を示す。これらの図面に含まれ
たテーブルは説明のためのもので非常に簡単化されてい
る。実際の翻訳テーブル28はずっと大きいが、この例で
記述された概念に基づいて当業者は簡単な方法で生成す
ることができる。
【0026】図6乃至図9で、テーブル内の各エントリ
は現状態フィールド36、入力コード・フィールド38、次
状態フィールド40、出力コード・フィールド42及び2つ
の活動フィールド44を含むように簡略化されている。こ
れらは原始ストリング・ポインタ(SPTR)及び目標ストリ
ング・ポインタ(TPTR)で行なわれる活動として提示され
る。説明を簡単にするために、ポインタSPTR及びTPTRは
常に一定数のバイトだけ移動すると仮定するので、それ
らは次の文字のロケーションまで増分される(+1で示さ
れる)か又は所在する位置に残される(+0で示される)か
のいずれかである。ハードウェア・バッファへのアクセ
ス又は書込み動作において、 +0 はもちろん動作しない
ことを表わすのに対し、 +1 は文字(又は他のコード)が
適切なバッファから読取られるか又は適切なバッファに
書込まれることを表わす。
【0027】図6で、文字[1,2,3,4]を含む入力言語の
出力言語[A,B,C,D]への翻訳を定義する翻訳テーブルが
示される。エントリ62は1をAに翻訳し、エントリ64は
2をBに翻訳し、エントリ66は3をCに翻訳し、そして
エントリ68は4をDに翻訳する。全ての場合に、次状態
は1であり、現状態と同じである。走査され生成された
文字毎に1つの位置だけSPTR及びTPTRがともに増分され
る。例えば、行62で入力に1が読取られると、出力にA
が生成され、状態は1に保持され、SPTR及びTPTRはとも
に増分される。従って、SPTRは入力ストリング内の次の
文字を指し、出力ストリング32を生成するためにTPTRは
次に使用できるロケーションを指す。残りのエントリ64
〜68も同様に機能する。
【0028】図7は、英語のアルファベット及び合字(l
igature)を用いる入力言語から翻訳できるやや複雑な翻
訳テーブルを示す。ここでは、次の2種類の合字を例と
してとりあげる。以下、本明細書では、便宜上、
【外1】を 「(AE)」 として表記し、
【外2】を 「(∪:ウ-ウムラルト)」 と表記することにす
る。この翻訳では、出力言語はこれらの合字を用いない
ので、入力ストリングでの合字 (AE) は2つの別々の文
字、Aとそれに続くEを出力ストリングに生成する。合
字(∪:ウ-ウムラルト)は、ドイツ語から英語への翻訳で
一般的に用いる、Uとそれに続くEとして出力ストリン
グに翻訳される。
【0029】エントリ70はコード1〜26 から出力文字A
〜Zへの簡単な翻訳を示す。全ての場合に、次状態は1
であり、これらの状態は図6に関連して説明したように
機能する。この簡略化された例では、入力の走査コード
27(エントリ72)は合字 (AE) に対応し、走査コード28
(エントリ76)は合字 (∪:ウ-ウムラルト) に対応する。
コード27が入力(エントリ72)で読取られると、出力スト
リングにAが書込まれ、次状態は状態2にセットされ
る。TPTRは増分されるが、SPTRは増分されない。これに
より、同じ文字が再び次状態の突合わせ(matching)に用
いられる。エントリ74はインタープリタ26により見出だ
された次状態である状態2と入力である27との突合わせ
を表わしている。Eが出力され、合字 (AE) の AE への
翻訳を終了する。次状態は1にセットされる。これは通
常の翻訳状態である。エントリ74で、SPTR及びTPTRはと
もに増分される。
【0030】(∪:ウ-ウムラルト)に対応する入力コード
28が受取られるとき、同様に行76が解釈される。Uが出
力され、そして次の状態は状態3にセットされる。前と
同様にSPTRは増分されない。エントリ78は文字28の翻訳
の第2の半分のエントリを示し、Eが出力ストリングに
生成される。
【0031】図8は、図7とは反対方向に、合字 (AE)
から翻訳する大幅に簡略化された例を示す。図8で、入
力のアルファベットは文字A、B及びEのみを含む。出
力言語は文字A、B、E及び合字 (AE) を含む。エント
リ80で示すように、入力ストリングにB又はEが読取ら
れる毎に、それは前述のように単に出力ストリングにコ
ピーされる。入力(エントリ82)にAが読取られる毎に、
Aが出力され、次状態は状態2にセットされる。この時
点では、読取られたAが単にAであるか、又は合字 (A
E) に翻訳される組合せ (AE) の第1の部分であるかは
分からないので、目標ポインタ(TPTR)は増分されない。
エントリ84、86及び88は状態2に対応し、Aの後の、次
の入力文字の読取りで何か起きるかを決める。もし次の
文字がBであれば、Aが出力され、次の状態は状態1に
戻る。このとき、原始ポインタは増分されない。これに
より、この時点では、前に読取られた文字Aを出力スト
リングに書込むように作用し、そして、原始ポインタを
増分せずに状態1に戻ることにより、Bが次回に再び読
取られ、続いて出力ストリングに書込まれることにな
る。
【0032】もしAがもう1つのAに続けば、同様の動
作が起きる。この場合、図8のテーブルは、最初のAが
Aとして書込まれ、2番目のAは単一のAか、又は (A
E) の組合せの最初の文字に相違ないと仮定する。従っ
て、Aが書出され、状態は状態1に戻る。SPTRは増分さ
れない。2番目のAはトランスレータ14を状態2に戻し
(エントリ82)、更に、その時点で、後続する次の文字の
決定が行なわれる。
【0033】もしEがAの後に続けば、インタープリタ
26によりエントリ88が突合わされ、出力記号として合字
(AE) が生成される。そして状態は通常の状態1に戻
る。
【0034】図9はいくぶん複雑な翻訳機能を定義する
部分翻訳テーブルを示す。図9で、図示のより難しい翻
訳に対応するエントリについてのみ説明する。それ以外
のエントリもテーブルに存在することが予想される。
【0035】図9のテーブルは、いくつかの拡張(ESC)
コードを異なるストリングに翻訳する動作を実行する。
この例では、拡張コードは、入力ストリング上の、拡張
文字(27)とそれに続く文字を含む2文字のストリングで
ある。図9では、文字P、T、X又はZだけが拡張文字
に続くことができる。テーブル2は図9のテーブルによ
って行なわれた翻訳を示す。
【0036】 テーブル 2 入力ストリング 出力ストリング ESC-P --> PQR ESC-T --> TUV ESC-X --> XUV ESC-Z --> CAT テーブル・エントリ90〜112は前述の翻訳の全てを実行
する。
【0037】テーブルのサイズを小さくするために、11
4 の文字を "ドント・ケア" 標識として用いることがで
きる。換言すれば、入力コード・フィールド38内のこの
文字はあらゆる文字との突合わせを生成する。
【0038】エントリ90は、拡張文字を受取ると、次状
態が状態2であることを記述する。ある文字、この場合
はA、が出力されるが、目標ポインタ(TPTR)は増分され
ないので、この文字は後で重ね書きされる。エントリ92
〜98は状態2を与え、これらのエントリの各々は入力文
字P、T、X及びZにそれぞれ対応する。生成される出
力文字は前述のようにストリングの最初の文字であり、
それぞれの次の状態が定義される。それぞれの場合に、
これは生成される出力ストリングの最後の文字ではない
から、原始ポインタ(SPTR)ば増分されないが、目標ポイ
ンタ(TPTR)は増分される。
【0039】エントリ92又はエントリ98を通して状態3
に達する。状態3で、もし入力ストリングに読取られた
ばかりの文字がPであれば、Qが出力され、次状態は状
態4にセットされる。もしZが用いられて状態3を取得
すれば(エントリ98)、Aが出力され、次状態は状態4に
セットされる。これは、状態の列(column)にある番号は
異なる翻訳の番号として用いられることを示す。なぜな
ら、実際の特定の状態は現状態及び入力コードの組合せ
によって決められるからである。
【0040】状態4内で、P及びZは、それぞれ、R
(エントリ104)及びT(エントリ106)の文字を出力ストリ
ングに生成し、状態は状態1に戻る。翻訳された出力ス
トリングの最後の文字が生成されるときのみ、原始ポイ
ンタが増分される。もちろん、生成された出力文字毎に
目標ポインタが増分される。
【0041】このテーブルでは、更に複雑な相互関係の
状態を用いることができる。例えば、エントリ94は次状
態を状態5にセットする。 (エントリ108で)、状態5は
入力文字に関係なくU出力を生成し、状態6に変わる。
(エントリ110で)、状態6は再び入力文字に関係なくV
を生成し、状態1にリセットされる。これらの行は出力
ストリングの UV 部分を生成するために ESC-T 及び ES
C-X 翻訳の両者によって用いられる。 ESC-Xを突合わせ
るエントリ96は、文字Xを出力するために用いられる状
態7に移行する。エントリ112 は次状態を状態5にセッ
トする。これはESC-T 拡張コードの場合のようにUとそ
れに続くVを生成する。このように、翻訳テーブル28は
"ドント・ケア" 文字114 と組合わせてエントリを再使
用することによりいくらか小さくすることができる。当
業者には理解されるように、状態テーブルの多数の変形
を用いることにより、かなり困難な翻訳を行なうことが
できる。
【0042】当業者には理解されるように、前述の翻訳
テーブルは一般に LR(0) 解析機能(parser)を実現する
のに用いることができる。これは、このようなテーブル
が多数の複雑な言語の翻訳ならびに、より簡単な前述の
文字翻訳に用いうることを意味する。このようなLR(0)
トランスレータでは、翻訳に用いられる全ての状態が翻
訳テーブル28に含まれる。もし更に複雑な活動が一定の
テーブル・エントリに必要であれば、これらは活動フィ
ールド44に包含することができる。これは、個々にコー
ド化しなければならない多数の外部の手順に依存する必
要なしに、このようなトランスレータを実現することを
可能にする。
【0043】前述のトランスレータは、キーボードを種
々に統合するために用いられる異なる翻訳テーブルを有
するキーボード・デコーダを実現するのに役立つ。これ
は異なる国で使用されるシステムを設計するときに有用
である。このトランスレータはいくらか異なるアルファ
ベットを有する国で用いられるテキスト・ファイルを翻
訳するのにうまく用いることができる。
【図面の簡単な説明】
【図1】本発明によるトランスレータ・サブシステムの
機能を示す高いレベルのブロック図である。
【図2】本発明による走査コード・デコーダを用いるコ
ンピュータ・システムの一部のブロック図である。
【図3】本発明による変換トランスレータのブロック図
である。
【図4】翻訳テーブルの1つの行を示す図である。
【図5】本発明に従ってインタープリタの動作を示す高
いレベルの流れ図である。
【図6】本発明の動作を示すのに用いる翻訳テーブルの
部分を示す図である。
【図7】本発明の動作を示すのに用いる翻訳テーブルの
部分を示す図である。
【図8】本発明の動作を示すのに用いる翻訳テーブルの
部分を示す図である。
【図9】本発明の動作を示すのに用いる翻訳テーブルの
部分を示す図である。
【符号の説明】
10 入力文字のストリング 12 出力文字のストリング 14 トランスレータ 16 走査コード・デコーダ 18 コンピュータ・システム 20 キーボード 22 バッファ 24 アプリケーション・プログラム 26 インタープリタ 28 翻訳テーブル 30 入力ストリング 32 出力ストリング 34 エントリ 36 現状態フィールド 38 入力コード・フィールド 40 次状態フィールド 42 出力コード・フィールド 44 活動フィールド

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムにおける翻訳シス
    テムであって、 状態機械を定義する複数のエントリを含む翻訳テーブル
    と、 テーブル・エントリを現在の前記翻訳システムの状態と
    突合わせ、該現在の翻訳システムの状態に一致するエン
    トリで定義された活動を実行する、前記翻訳テーブルに
    接続されたインタープリタとを備える翻訳システム。
  2. 【請求項2】前記の各エントリは複数のフィールドを含
    み、該フィールドは現状態フィールドと、 入力コード・フィールドであって、前記インタープリタ
    が、現在の前記翻訳システムの状態及び入力コードをそ
    れぞれ前記現状態フィールド及び前記入力コード・フィ
    ールドと突合わせることにより、前記テーブル・エント
    リを前記現在の翻訳システムの状態と突合わせる入力コ
    ード・フィールドと、 出力コード・フィールドと、 次状態フィールドと、 前記インタープリタにより実行される少なくとも1つの
    活動の識別子を含む活動フィールドとを備える請求項1
    の翻訳システム。
  3. 【請求項3】前記活動フィールドは入力ストリングのポ
    インタに基づいて実行される活動を定義する第1のサブ
    フィールドと、 出力ストリングのポインタに基づいて実行される活動を
    定義する第2のサブフィールドとを備える請求項2の翻
    訳システム。
  4. 【請求項4】コンピュータ・システムのキーボード・デ
    コーダであって、 前記コンピュータ・システムに接続されたキーボードか
    ら入力コードを読取る手段と、 状態機械を定義し、前記キーボードから読取られた入力
    コードを解釈するために用いられる翻訳テーブルと、 前記読取り手段及び前記翻訳テーブルに接続され、前記
    キーボードから読取られた入力コードに応答して前記翻
    訳テーブルで定義された状態変更及び活動を実行するイ
    ンタープリタと、 前記翻訳テーブルで定義された活動に応答して選択され
    たロケーションに出力コードを書込む手段とを備えるキ
    ーボード・デコーダ。
  5. 【請求項5】前記選択されたロケーションは、前記コン
    ピュータ・システムで実行するアプリケーション・プロ
    グラムによりアクセスできるバッファを含む、請求項4
    のキーボード・デコーダ。
  6. 【請求項6】前記翻訳テーブルは、それぞれが複数のフ
    ィールドを含む複数のエントリを具備し、前記フィール
    ドの各々は現状態フィールドと、 入力コード・フィールドであって、前記インタープリタ
    が現在のデコーダの状態及び入力コードをそれぞれ前記
    現状態フィールド及び前記入力コード・フィールドと突
    合わせることにより、テーブル・エントリを現在のデコ
    ーダの状態と突合わせる入力コード・フィールドと、 出力コード・フィールドと、 次状態フィールドと、 前記インタープリタにより実行される少なくとも1つの
    活動の識別子を含む活動フィールドとを備える請求項4
    のキーボード・デコーダ。
  7. 【請求項7】前記活動フィールドは入力ストリングのポ
    インタに基づいて実行される活動を定義する第1のサブ
    フィールドと、 出力ストリングのポインタに基づいて実行される活動を
    定義する第2のサブフィールドとを備える請求項6のキ
    ーボード・デコーダ。
  8. 【請求項8】前記インタープリタは、前記キーボードに
    より生成される走査コードに応答して割込みとして呼出
    されるソフトウェア手順である、請求項4のキーボード
    ・デコーダ。
  9. 【請求項9】入力コードを出力コードに翻訳する方法で
    あって、 コードを翻訳するために突合わせる状態を定義する複数
    のエントリを持つ翻訳テーブルを提供するステップと、 次の入力コードを読取るステップと、 対応するエントリを選択するために現在のトランスレー
    タの状態及び次の入力コードを前記翻訳テーブルのエン
    トリと突合わせるステップと、 選択されたエントリにより定義された活動を実行するス
    テップと、 現在のトランスレータの状態を前記選択されたエントリ
    で定義された次状態にセットするステップとを含む翻訳
    方法。
  10. 【請求項10】前記翻訳テーブルのエントリで定義され
    た活動は選択されたロケーションに出力コードを書込む
    ステップと、 次の入力文字を読取るステップと、 カウンタに含まれた値を変えるステップと、 ポインタの値を変えるステップと、 活動を実行しないステップとを含むセットから選択され
    る、請求項9の方法。
JP5006594A 1992-02-04 1993-01-19 文字及びコード変換のための翻訳システム及び方法 Expired - Lifetime JP2575578B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US830820 1992-02-04
US07/830,820 US5309566A (en) 1992-02-04 1992-02-04 System and method for character translation

Publications (2)

Publication Number Publication Date
JPH0683572A true JPH0683572A (ja) 1994-03-25
JP2575578B2 JP2575578B2 (ja) 1997-01-29

Family

ID=25257753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5006594A Expired - Lifetime JP2575578B2 (ja) 1992-02-04 1993-01-19 文字及びコード変換のための翻訳システム及び方法

Country Status (2)

Country Link
US (1) US5309566A (ja)
JP (1) JP2575578B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9290209B2 (en) 2012-03-29 2016-03-22 Toyota Jidosha Kabushiki Kaisha Vehicle body lower structure

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
US5551055A (en) * 1992-12-23 1996-08-27 Taligent, Inc. System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order
JPH0877176A (ja) * 1994-09-07 1996-03-22 Hitachi Ltd 外国語翻訳装置
JPH08212151A (ja) * 1995-02-08 1996-08-20 Canon Inc 情報処理機器
US5831560A (en) * 1996-09-20 1998-11-03 Sun Microsystems, Inc. S-table approach to data translation
US6550681B1 (en) * 1999-02-18 2003-04-22 General Electric Company Internet related appliances
US7996411B2 (en) * 2003-03-28 2011-08-09 International Business Machines Corporation Method, apparatus, and system for translating selected characters in a record processing system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63254828A (ja) * 1987-04-10 1988-10-21 Matsushita Electric Ind Co Ltd 可変長符号生成装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57187732A (en) * 1981-05-14 1982-11-18 Toshiba Corp Shift control system for keyboard
US4502038A (en) * 1981-10-15 1985-02-26 Convergent Technologies, Inc. Keyboard scanning and interface method and circuit
US4679030A (en) * 1982-04-30 1987-07-07 Volnak William M Chording keyboard for generating binary data
US4891786A (en) * 1983-02-22 1990-01-02 Goldwasser Eric P Stroke typing system
US4641262A (en) * 1983-03-07 1987-02-03 International Business Machines Corporation Personal computer attachment for host system display station
JPS6231467A (ja) * 1985-08-01 1987-02-10 Toshiba Corp 文章作成装置
US4937778A (en) * 1986-04-14 1990-06-26 Wolf Chris L System for selectively modifying codes generated by a touch type keyboard upon detecting of predetermined sequence of make codes and break codes
GB2189970B (en) * 1986-05-01 1990-03-28 British Broadcasting Corp Data conversion
US4901364A (en) * 1986-09-26 1990-02-13 Everex Ti Corporation Interactive optical scanner system
US4852157A (en) * 1988-03-03 1989-07-25 Alcatel Na, Inc. Multi-task state machine signalling translator
US4918445A (en) * 1988-07-20 1990-04-17 Hewlett-Packard Company Scanning, row-column type keyboard
US4952924A (en) * 1988-08-23 1990-08-28 Acer Incorporated Method and apparatus for address conversion in a chinese character generator of a CRTC scan circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63254828A (ja) * 1987-04-10 1988-10-21 Matsushita Electric Ind Co Ltd 可変長符号生成装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9290209B2 (en) 2012-03-29 2016-03-22 Toyota Jidosha Kabushiki Kaisha Vehicle body lower structure

Also Published As

Publication number Publication date
US5309566A (en) 1994-05-03
JP2575578B2 (ja) 1997-01-29

Similar Documents

Publication Publication Date Title
US6400287B1 (en) Data structure for creating, scoping, and converting to unicode data from single byte character sets, double byte character sets, or mixed character sets comprising both single byte and double byte character sets
US7886309B2 (en) Accessing a platform independent input method editor from an underlying operating system
US20040122652A1 (en) Mock translating software applications at runtime
US7278100B1 (en) Translating a non-unicode string stored in a constant into unicode, and storing the unicode into the constant
JP2000508093A (ja) 減少型キーボード曖昧さ除去システム
US20070271553A1 (en) Method and system for translating assembler code to a target language
KR20060047421A (ko) 테이블을 이용한 언어 로컬화
US6055365A (en) Code point translation for computer text, using state tables
EP1717719A1 (en) Application conversion of source data
KR100676697B1 (ko) 컴퓨터용 소프트웨어의 언어표시방법 및언어표시시스템과, 언어표시방법과 언어표시시스템이저장된 기록매체
JP2575578B2 (ja) 文字及びコード変換のための翻訳システム及び方法
US8990500B2 (en) Storing the most significant and the least significant bytes of characters at non-contiguous addresses
US7051278B1 (en) Method of, system for, and computer program product for scoping the conversion of unicode data from single byte character sets, double byte character sets, or mixed character sets comprising both single byte and double byte character sets
JP2003122555A (ja) スプリットストリーム辞書プログラム圧縮およびジャストインタイム変換のためのシステムおよび方法
JP4451908B2 (ja) ユニコード・コンバータ
US20020146181A1 (en) System, method and computer program product for a multi-lingual text engine
US5745881A (en) Kana-Kanji conversion system and a method for producing a Kana-Kanji conversion dictionary
EP0807881A2 (en) Encoding schemes for character fonts
US7468683B2 (en) Encoding conversion fallback
JPH10232867A (ja) 文書処理方法および文書処理装置ならびに文書処理プログラムを記録した記録媒体
JPH0252299B2 (ja)
KR100586000B1 (ko) 크로스 플랫폼 구성을 가능하게 하는 방법 및 장치
JPH0528156A (ja) 文書データ変換装置
KR940003624B1 (ko) Vga 시스템의 한글/한자 처리장치 및 방법
Yip et al. A framework for the support of multilingual computing environments

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080815

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080815

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090815

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090815

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100815

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100815

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 10

EXPY Cancellation because of completion of term