2

次のような単純なCプログラムの場合:

#include<stdio.h>
int main(){
   int first,second,sum;
   first = 10;
   second = 20;
   sum = first + second;
   printf("%d\n",sum);
}

Lexcial Analysisであるコンパイラの最初のフェーズの後の出力はどうなりますか?

4

2 に答える 2

4

字句解析により、トークンのストリームが生成されます。今のところプリプロセッサを無視すると、出力は次のようになります

KEYWORD int
IDENTIFIER main
LPAREN
RPAREN
LBRACE
KEYWORD int
IDENTIFIER first
COMMA
...

明らかに、実際の出力はコンパイラに依存します。

于 2013-02-25T09:48:38.987 に答える
1

出力はありません。最初のフェーズは字句解析かもしれませんが、それは、次のステージへの入力を形成する出力を伴う完全に別個のパスであるという意味ではありません。パーサーは、関数呼び出しを介して語彙アナライザーを呼び出します。

于 2013-02-25T22:16:24.140 に答える