しくみと設計とは? わかりやすく解説

しくみと設計

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/06 02:23 UTC 版)

コンパイラ」の記事における「しくみと設計」の解説

コンパイラは、一般に次のような部分から成るソースコード読み込みトークン分解する字句解析部や字句解析器 トークン列をもとにプログラム構文木構築する構文解析部や構文解析器 中間コード作成省略可能) 最適化 構文木からオブジェクトコード生成するコード生成字句規則から字句解析器生成するlex構文規則から構文解析器生成するパーサジェネレータというプログラムがあり、広く実用に使われている。コンパイラ全体生成するコンパイラジェネレータ研究されているものの、広く実用に使われるには至っていない。 コンパイラ設計手法は処理の複雑さ設計者経験利用可能リソース人間ツール)に影響されるコンパイル処理の分割採用したのはカーネギーメロン大学での Production Quality Compiler-Compiler Project であった。このプロジェクトでは、「フロントエンド」、「ミドルエンド」(今日では滅多に使われない)、「バックエンド」という用語が生み出された。 非常に小さなコンパイラ以外、今日では2段階(2フェーズ以上に分割されている。しかし、どういったフェーズ分けをしようとも、それらフェーズフロントエンドバックエンド一部見なすことができる。フロントエンドバックエンド分割点はどこかというのは論争の種にもなっている。フロントエンドでは主に文法的な処理と意味論的な処理が行われ、ソースコードよりも低レベル表現変換する処理が行われる。 ミドルエンドはソースコードでも機械語でもない形式に対して最適化を施すフェーズとされるソースコード機械語独立しているため、汎用的最適化が可能とされ、各種言語各種プロセッサに共通の処理を行う。 バックエンドはミドルエンドの結果受けて処理を行う。ここでさらなる解析変換最適化特定のプラットフォーム向けに行う場合もある。そして、特定のプロセッサOS向けにコード生成する。 このフロントエンド/ミドルエンド/バックエンドという分割法採用することにより、異なプログラミング言語向けのフロントエンド結合したり、異なCPU向けのバックエンド結合したりできる。この手法の具体例としてはGNUコンパイラコレクションAmsterdam Compiler KitLLVM がある。これらは複数フロントエンド複数バックエンドがあり、解析部を共有している。

※この「しくみと設計」の解説は、「コンパイラ」の解説の一部です。
「しくみと設計」を含む「コンパイラ」の記事については、「コンパイラ」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「しくみと設計」の関連用語

しくみと設計のお隣キーワード
検索ランキング

   

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



しくみと設計のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのコンパイラ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS