官术网_书友最值得收藏!

2.1 詞法分析概要說明

從第1章我們了解到,編譯時要經過詞法分析識別出符號、語法分析生成語法樹、語法樹生成中間代碼、中間代碼生成目標代碼這樣幾個階段,最終目標代碼產生運行時結構。如圖2-1所示。

圖2-1 全書講解內容的總體結構圖

本章仍以第1章講解運行時結構時提供的源程序為例,講解編譯的第一階段——詞法分析。詞法分析在全書中的位置如圖2-2所示。

圖2-2 詞法分析在全書結構中的位置

案例程序的C語言表現形式如下所示:

int fun(int a,int b);
int m=10;
int main()
{
  int i=4;
  int j=5;
  m=fun(i,j);
  return 0;
}
int fun(int a,int b)
{
  int c=0;
  c=a+b;
  return c;
}

這是我們看到的源程序的樣子,但它在計算機上存儲的形式與我們看到的形式不同,如果以十六進制的數字形式展現它們,C語言寫的案例程序看上去如圖2-3所示。

圖2-3 案例程序的十六進制數表現形式

在計算機中,這是一串連續的看起來毫無頭緒的數字。詞法分析的任務就是要把這一串連續的數字根據C語言的詞法規則切割成“int”、“a”、“=”、“10”、“;”——分立的標識符、數字、符號。

詞法分析的實現過程是將這一串連續的數字作為字符串逐個讀出字符,按照C語言的詞法規則把連續的字符切分成獨立的符號,并鑒別屬性。

主站蜘蛛池模板: 宜昌市| 阳春市| 渑池县| 连州市| 那坡县| 龙陵县| 许昌县| 唐海县| 昭平县| 蓬溪县| 苍溪县| 望城县| 宜阳县| 南靖县| 安化县| 通山县| 永定县| 丹凤县| 大关县| 淮滨县| 清水河县| 内黄县| 班玛县| 故城县| 黄浦区| 齐齐哈尔市| 香河县| 偃师市| 二手房| 寻乌县| 宾阳县| 河北省| 翁源县| 玉门市| 禹州市| 广东省| 莒南县| 剑阁县| 黄平县| 维西| 沙洋县|