前言
更新中。。。跳過目錄
從編譯程式角度,將源程式中錯誤分為兩類:
程式結構不符合語法(包括詞法)規則的錯誤。
例:乙個具有三處語法錯誤的賦值語句
a[x, y :=3
,1416
+ t (t + h)
對語法錯誤大家都很熟悉,它可以在編譯過程的詞法分析階段或語法分析階段查詢出來。
一般來說,對於語法錯誤,編譯程式能比較準確地確定出錯的位置(即在源程式中的位置)和錯誤的性質。
語義錯誤包括2個方面:
一種語言除了有確定的文法定義以外,還有確定的語義規則。
對一般的高階語言,其語義規則通常有:
其中一些規則,如識別符號的作用域規則,是對上下文無關文法的補充(見語義分析和**生成部分)。
超越系統限制( 計算機系統和編譯系統)一般指溢位錯誤,如:
這類錯誤雖然不是違反具體的語義規則引起的,但在傳統上也將它們歸入語義錯誤的範疇。
編譯原理學習筆記 語法
高階程式語言可分為 1.強制性語言 2.作用時語言 3.基於規則的語言 4.物件導向的語言 程式語言主要由語法,語義,語用 語用 有關程式設計和語言成分的使用方法,它使語言的基本概念與外界的語言 如數學概念或計算機的物件和操作 聯絡起來。語法 語法是指這樣的一組規則,用它可以形成和產生乙個合式的程式...
編譯原理學習筆記(二)
1 字母表 字母表 符號 字母 數字 標點符號 例 二進位制字母表,ascii字元表 unicode字符集 2 字母表上的運算 1 字母表的乘積 sigma1 sigma2的乘積 sigma1 sigma2 例 2 字母表的冪運算 字母表的n次冪運算是常速為n的符號串構成的集合 sigma的0次冪 ...
編譯原理學習筆記 9 4 錯誤處理技術
前言 更新中。跳過目錄 發現錯誤後,在報告錯誤的同時還要對錯誤進行處理,以便編譯能繼續進行下去。目前有兩種處理辦法 指編譯診察出錯誤以後,根據語言的文法和對程式意圖作某種猜測,進行錯誤改正。例 a i,j b c但不是總能做到改正錯誤 例 a b c d e 所以,要正確地改寫錯誤是很困難的。指當編...