中間言語とは? わかりやすく解説

ちゅうかん‐げんご【中間言語】


中間言語 [intermediate language]


中間言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/27 04:55 UTC 版)

中間言語ちゅうかんげんごは、任意の言語を異なる任意の言語へ翻訳する際に利用する中間的な人工言語もしくは自然言語である。

ピヴォット言語

ピヴォット言語(pivot language)は、中間言語のうちでも、特にピヴォット翻訳と呼ばれる機械翻訳における手法においてあらわれる言語である(英語版の記事名は pivot language となっており、特にこれについて説明している)。

一般に機械翻訳では、構文解析の結果すなわち構文木の変換によって翻訳したり(構文トランスファー方式)、あるいはより深く意味解析までおこなって翻訳をする(意味トランスファー方式)。いずれにしてもその変換は、翻訳元と翻訳先の言語に特化したものになる。それに対してピヴォット翻訳では、どの言語にも特化せず、どの言語にも対応できる「ピヴォット言語」への翻訳と、そこからの目的言語への翻訳、というようにして機械翻訳が可能であるものとして考えられるものである。

この手法のメリットは、組合せ爆発を防げることである。中間言語を用いると、翻訳が必要となる言語の組み合わせの数は二乗スケールではなく線形スケールに収まる。(言語Aと中間言語P、言語Bと中間言語P、… について翻訳が出来ればよく、あらゆる組み合わせの翻訳方法まで知る必要がなくなる)

一方のデメリットは、いわゆる重訳のそれと同様である。つまり、中間言語との再翻訳で2度の翻訳誤りと曖昧さを生む可能性があることである(この可能性が小さくなるようにピヴォット言語は設計されねばならず、そしてそれは難しいことでもある)。中間言語を翻訳に用いなければ、その可能性は1度に抑えられている。例えば、エルナン・コルテスメソアメリカインディアンと会話する際に、エルナン・コルテスはヘロニモ・デ・アギラールスペイン語で話し、ヘロニモ・デ・アギラールはマリンチェマヤ語で話し、マリンチェはインディアンにナワトル語で話すように、各言語同士での再翻訳でニュアンスや意味の違いが発生しうる。

機械翻訳

統計的機械翻訳英語版は言語Aから言語Bへの翻訳に言語A・Bのパラレルコーパス英語版を利用するが、パラレルコーパスは任意言語の全ての対には存在しないため任意言語翻訳では使えない。中間言語Pは2つの言語を繋ぎ、言語A・Bと中間言語Pのパラレルコーパスを使うことで任意言語翻訳を実現する。中間言語を用いた翻訳は、異なるコーパスへ転記するため厳密な情報保存において問題を抱えることがある。AからBへ翻訳に用いる2つのパラレルコーパス(A-P・P-B)は必然的に言語情報の欠損が起きる。ルールベース機械翻訳英語版は統計情報に依存せず、情報欠損の削減に助力する。ルールベース機械翻訳はA-P翻訳とP-B翻訳を一定のルールに従って翻訳する。

機械翻訳では3つの基礎的な手法を翻訳に利用される。1つはトライアングレーション、A-P・P-Bのフレーズの相関性に焦点を当てる。1つはトランスファー英語版、全てのセンテンスをAからPに翻訳、PからBに翻訳する。1つはシンセシス、翻訳システムのコーパスを構築する。トライアングレーション手法は、A-Bのフレーズテーブルを構築するためのA-P・P-Bの相対と語彙の重みを計算する。トランスファー手法は、トライアングレーションのような重み計算なくAからP、PからBへの単純な直意翻訳をする。シンセシス手法は、既存のAコーパスを使って、自身のシステムの改善するためのコーパスの構築に役立てる。統計的機械翻訳においてトライアングレーション手法とトランスファー手法を単純比較すると、トライアングレーション手法はトランスファー手法より適切な翻訳結果が得られると見なされている。

3つの中間言語の翻訳手法は統計的機械翻訳に役立つが、シンセシス手法はルールベース機械翻訳では適切ではなく、期待通りの性能を発揮しない。統計的機械翻訳とルールベース機械翻訳は一長一短であり、両翻訳システムのハイブリッド翻訳はどちらかのみを使用した翻訳システムより良い翻訳結果を得られる。

言語学

言語学習では、中間言語を第二言語(外国語)の学習者が言語を学んでゆく過程で発する、目標言語とは様々な点で違った体系を持つ学習者に特徴的な言語として用いる。すべての言語において、その個別の学習者には中間言語が存在する。この中間言語は当然、学習者の習得レベルや学習内容、母語などに影響を受ける。

たとえば日本語のみを母語とする者が話す英語は、英語を母語とする人たちのそれとは違っているのが普通である。それは文法や発音が少し違っていたり、特定の表現が多く用いられたり、またその反対にほとんど用いられなかったりと、個人によって異なる。そのようにある一定の規則を持ちながらも、目標言語とは異なっている学習者の言語を中間言語という。

この中間言語という概念はラリー・セリンカー英語版によって1972年に提唱された。中間言語という概念が登場するまで、第二言語習得研究における主な手法は、学習者の誤用から、目標言語と学習者の母語との違いを研究する、いわゆる誤用分析が中心であった。しかし学習者が発した誤りを研究するだけでは、回避(例えば、日本語の母語話者は英語におけるwhatやthatのような関係節をなるべく使わないように話そうとする)など誤用以外の問題点を扱えないことから、「学習者言語の自律性」を重んじる中間言語分析が注目されるようになった。

なお、「この中間言語という概念」は、前の節までで述べている pivot language 等ではなく、interlanguage と英語では呼んでいるものであり(詳しくは en:Larry Selinkeren:Interlanguage の記事などを参照)、むしろカタカナで「インターランゲージ」としたほうが誤解の可能性が無くなり、概念としてセリンカーが述べたそれであるとハッキリする。

言語例

英語フランス語ロシア語アラビア語は自然言語の翻訳によく使われる中間言語である。

インターリングア
EUが提案した中間言語で、国際会議でも使われている[1]
エスペラント
Distributed Language Translation英語版プロジェクトが提案した中間言語で[2]エスペラント版ウィキペディアなどで使われている。
Universal Networking Language
中間言語として設計された人工言語である[3]

脚注

  1. ^ Breinstrup, Thomas. "Linguaphobos? Non in le UE". [Linguaphobes? Not in the EU]. Panorama in Interlingua, 2006, Issue 5.
  2. ^ 二木紘三著、「国際語の歴史と思想」(1981年、毎日新聞社)p.166
  3. ^ What is UNL?”. UNDL Foundation. 2018年4月23日閲覧。

中間言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/26 07:33 UTC 版)

中間表現」の記事における「中間言語」の解説

「中間言語」という語は、中間表現言語形式言語)の形態をしている場合にそう呼ばれるのである。ここでは主に、プログラミング言語関係する場合について述べる。 コンパイラでは、ソースコードから直接ターゲットコード生成するではなく中間表現経由するコンパイラがある。インタプリタでは、ソースコード直接解釈実行するではなく中間表現生成してそれを解釈実行するインタプリタがある。コンパイラにしてもインタプリタにしても、あるいはそういったコンピュータ・プログラミング言語処理系限らず入力があって出力がある任意のコンピュータ・プログラムにおいてそういった何らかの中間表現は1段階とは限らず複数種類があって複数段階のこともある。 歴史的には、言語処理系では1970年代頃までは単一言語単一ターゲットが普通であった。しかし発想自体以前からあり、1958年メルヴィン・コンウェイ文献Proposal for an UNCOLで提案されているUNCOL(UNiversal Computer Oriented Language)がある。UNCOLは概念提案のためのものであり、完備された仕様として示されたものではない。また、初期日本コンピュータにおいて森口繁一提案による、素朴なのである命令名の共通化などをはかったSIPSymbolic Input Program)というものがあった。 1980年代には一般的に見られるようになり、GNU Compiler Collectionでは、中間表現内部形式Register Transfer LanguageRTL)などの非依存なものであり、Machine DescriptionsMD)と呼んでいるターゲット記述によってコード生成することにより、複数言語ターゲット対応している。ただし、中間表現外部ファイル書き出したり、外部ファイルか読み込んだり、ということ簡単にできるようにはなっておらず、これは意図的なのであるその後2000年頃から日本において、GPLでなく利用できるそのようなインフラストラクチャ必要だという考えから整備された「COINSコンパイラ・インフラストラクチャ」(COINS: a COmpiler INfraStructure)がある。COINSには高水準中間表現HIR: High level intermediate representation)と低水準中間表現LIR: Low level intermediate representation)があるなど、対応を広げるためと現代的な最適化のための充実した中間表現持っている。またその少し後にあらわれたLLVM同様にライセンスがGPLでなく、中間言語を活用しており、フロントエンド異なプログラミング言語ソースコード1つの中間言語に変換しバックエンド1つの中間言語を異なターゲットコード変換するLLVMclangrustcEmscriptenなどの「コンパイラ基盤」として使われている。 初期BASIC処理系実装用いられた中間言語は、バイトコードのようなものではなく字句解析のみを行いBASICの各ステートメント(ないしコマンド)を単にコード直接変換するだけといったものもあった。実行時字句解析不要になるが、ソースコード戻して表示編集するともできるGOTO飛び先キャッシュするなどの工夫がされたものもあった。高度な中間言語を利用する実装もあり、N88-日本語BASIC(86)(MS-DOS版)のコンパイラは、実行ファイル出力するが、その内部は中間言語コードでありまたその実行には外部に、中間言語のインタプリタを含むランタイムライブラリ必要だった幾つかのバーチャルマシンインタプリタは中間言語を直接実行する

※この「中間言語」の解説は、「中間表現」の解説の一部です。
「中間言語」を含む「中間表現」の記事については、「中間表現」の概要を参照ください。

ウィキペディア小見出し辞書の「中間言語」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「中間言語」の関連用語

中間言語のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



中間言語のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリ中間言語の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの中間言語 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの中間表現 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS