源程序中可能出现的错误主要有三类:词法错误、语法错误和语义错误。
1.词法错误:如非法字符或拼写错关键字、标识符等。
2.语法错误:是指语法结构出错,如少分号、begin/end不配对等。
3.静态语义错误:如类型不一致、参数不匹配等。
4.动态语义错误(逻辑错误):如死循环、变量为零时作除数等。
大多数错误的诊断和恢复集中在语法分析阶段。一个原因是大多数错误是语法错误;另一个原因是语法分析方法的准确性,它们能以非常有效的方法诊断语法错误。
在编译时,想要准确诊断语义或逻辑错误有时是很困难的,所以存在死循环这样的错误,一般在编译阶段是不会报错的,只有到程序运行时,才会发现。
网友评论