詞法分析器是編譯器中掃描源程序的部分,因而它還可以完成和用戶接口的一些其他任務。其一是剝去源程序的注解和(由空格、制表或換行符等引起的)空白。其二是把來自編譯器各個階段的錯誤信息和源程序聯系起來,例如,詞法分析器記住當前處理的字符行的行號。 我認為詞法分析器輸入的就是源程序的字符串流?
詞法記號(記號)是什么?由記號名與屬性值組成的二元組。屬性不是必須的。記號名是一類詞法單元的抽象符號。
模式,其實匹配該記號名的具體一類字符串,比如說這個詞法單元的幾號是realtion,模式就是<、>、=或>=等.
詞法單元,模式中的一個實例。
屬性,其實就是詞法單元在二元組當中的表示。告訴詞法單元是這個記號名中模式的哪一個實例。
串是一個字母集合上的有窮序列。
語言就是一個串的集合,句子(字)則是這個集合里面的元素。這個集合能進行並、連接‘閉包與正閉包的運算。ε就是空串,空集也是一種語言。
正規式,其實就是定義在上述集合的元素之間的運算,這個運算返回的是一個集合(還是一個語言),這個集合叫正規集。
正規式定義就是給正規式加了個名字,而且可以用這個名字指代它。