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

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


中間言語 [intermediate language]


中間言語

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

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

ピヴォット言語

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

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

この手法のメリットは、組合せ爆発を防げることである。中間言語を用いると、翻訳が必要となる言語の組み合わせの数は二乗スケール


中間言語

出典: フリー百科事典『ウィキペディア(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.
株式会社 小学館
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 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というライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS