
No.2ベストアンサー
- 回答日時:
パーサはコンパイラの一部ですね。
Unix であれば yacc というプログラムでパーサの作成ができます。(最近は、bison とかいうらしいが、やはり yacc と呼ばなくては)コンパイラの内部では、パーサの出力をコードジェネレータに渡します。自分でコンパイラを作れるようになれば、自然に理解できるようになるでしょう。
No.4
- 回答日時:
非常に大雑把なコンパイラの動作:
1. レクサ (字句解析器) でソースを「トークン」という単位に分割する.
2. パーザ (構文解析器) でトークン列から「ソースファイルの構造」を組み立てる.
<ここまでがフロントエンドで以下はバックエンド>
3. ソースファイルの構造をもとに生成物であるオブジェクトファイルを作る.
3'. 必要に応じてオプティマイザで最適化.
だから, コンパイラの一部をとりだしたのがパーザ.
なお, yacc と bison は別物なので, bison を yacc と呼ぶのはよくないと思います>#2.
No.3
- 回答日時:
パーサ(parser)とは構文解析器のことです。
例えば
printf("0123456789\n");
というコードがあった場合、 printf という関数に対して
"0123456789\n" という値(引数)を渡しているということを全体の
文法から分析・分解してコンパイラに渡します。
(簡単に大まかに説明していますが正確には微妙に異なります)
コンパイラが直接上記の事を行えるわけではないんです。
逆に言えばパーサを変えれば論理上は同じコンパイラでも文法を
変更することができるともいえます。
参考URL:http://ja.wikipedia.org/wiki/%E6%A7%8B%E6%96%87% …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
printfなど、標準関数のソース...
-
unsigned long long 型のフォー...
-
組み込みソフト。ROM領域にデータ
-
ソフトの開発言語を調べる方法
-
FORTRANのおすすめコンパイラ
-
H8/3664でのEEPROMの使用について
-
C++でデスクトップGUIアプリ開...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
math.hに含まれる関数が使えない
-
アプリケーションのDLLファイル...
-
visual studio2019でデバッグが...
-
Visual studio2017で、2回目の...
-
C言語でヘッダファイルにグロー...
-
キーの自動入力
-
ソリューションをまたがるデバ...
-
visual studio 2008 のデバッグ...
-
Excelのエラーで困ってます。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
printfなど、標準関数のソース...
-
リリースモードとデバッグモー...
-
C++Builder → Visual C++ 移植...
-
<conio.h>?
-
パーサとコンパイラの違いって?
-
PICでのI2C通信でのマスタ、ス...
-
C言語はC言語でできている?
-
PIC18Fで変数の受け渡し...
-
COBOLの論理演算子について質問...
-
cc と gcc の違い
-
組み込みソフト。ROM領域にデータ
-
templateクラスの宣言と定義を...
-
変数の内容がコロコロ変わる、...
-
Out Of Near Heap Space?
-
最初に使う変数のゼロクリアに...
-
MPI プログラム
おすすめ情報