中間言語のソースを表示
←
中間言語
移動先:
案内
、
検索
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
'''中間言語'''(ちゅうかんげんご)とは、[[プログラミング言語]]処理系において([[#プログラミング言語処理系]])と、[[言語学]]において([[#言語学における中間言語]])指す内容が異なる。詳細は以下を参照。 == プログラミング言語処理系 == '''中間言語'''は、[[プログラミング言語]]処理系において、[[高水準言語]]の[[ソースコード]]と[[機械語]]のコードの中間にあたる[[中間表現]]の言語である。 人間が読むことのできる状態から、コンピュータ内部のデータ形式に一旦置き換えたもので、機械語ではないからそのままCPUが解釈して実行することはできない。[[BASIC]]などの[[インタプリタ]]で実行速度の高速化のためによく利用される。また、[[コンパイラ]]では高度な[[コンパイラ最適化|最適化]]を施すためには中間表現が欠かせない。 [[仮想機械#プロセス仮想機械|仮想機械]]の機械語で[[バイト (情報)|バイト]]指向の中間言語を[[バイトコード]]という。目的機械のコード生成の前段階として、アーキテクチャ独立の一種の機械語と言える[[3番地コード]]を使うコンパイラがある。[[.NET Framework]]では[[共通中間言語]]を定義した。[[Pコードマシン|Pコード]]を使う[[Pascal]]の実装がある。 初期のBASIC処理系の実装で用いられた中間言語は、バイトコードのようなものではなく、字句解析のみを行い、[[予約語]]などを数値に変換しただけといったものもあった。実行時の字句解析が不要になるが、ソースコードに戻して表示、編集することもできる。GOTOの飛び先をキャッシュするなどの工夫がされたものもあった。高度な中間言語を利用する実装もあり、[[N88-BASIC#MS-DOS版、コンパイラ版|N88-日本語BASIC(86)(MS-DOS版)のコンパイラ]]は、[[実行ファイル]]を出力するが、その内部は中間言語コードでありまたその実行には外部に、中間言語のインタプリタを含む[[ランタイムライブラリ]]が必要だった。 <!--どんなアーキテクチャのマシンでも実行できるという話は中間表現の記事のほうに移動します--> 中間言語から、簡単にソースコードを復元、推定することが出来るものも多い([[難読化コード|難読化]]、ないし推定不可能にするものもある)。そのため、ソースコード保護の目的などで、難読化ツール(obfuscator)があり、使われることがある。 == 機械翻訳における中間言語 == '''中間言語'''([[:en:Pivot language]])は、[[機械翻訳]]の、ピボット翻訳という手法で使われる言語である。直訳的に「枢軸言語」とする場合もある。 == 言語学における中間言語 == '''中間言語'''とは[[第二言語]](外国語)の学習者が、その言語を学んでゆく過程で発する、目標言語とは様々な点で違った体系を持つ学習者に特徴的な言語のこと。すべての言語において、その個別の学習者には中間言語が存在する。この中間言語は当然、学習者の習得レベルや学習内容、母語などに影響を受ける。 たとえば日本語のみを母語とする者が話す英語は、英語を母語とする人たちのそれとは違っているのが普通である。それは文法や発音が少し違っていたり、特定の表現が多く用いられたり、またその反対にほとんど用いられなかったりと、個人によって異なる。そのようにある一定の規則を持ちながらも、目標言語とは異なっている学習者の言語を中間言語という。 この中間言語という概念は[[ラリー・セリンカー]](Larry Selinker)によって1972年に提唱された。中間言語という概念が登場するまで、[[第二言語習得]]研究における主な手法は、学習者の誤用から、目標言語と学習者の母語との違いを研究する、いわゆる誤用分析が中心であった。しかし学習者が発した誤りを研究するだけでは、回避(例えば、日本語の母語話者は英語におけるwhatやthatのような関係節をなるべく使わないように話そうとする)など誤用以外の問題点を扱えないことから、「学習者言語の自律性」を重んじる中間言語分析が注目されるようになった。 == 関連項目 == *[[中間表現]] *[[インタプリタ]] {{DEFAULTSORT:ちゆうかんけんこ}} [[Category:コンピュータ言語]] [[Category:応用言語学]]
中間言語
に戻る。
案内メニュー
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
その他
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
新しいページ
最近の更新
おまかせ表示
sandbox
commonsupload
ヘルプ
ヘルプ
井戸端
notice
bugreportspage
sitesupport
ウィキペディアに関するお問い合わせ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報