编译原理的终结符和非终结符如何理解?

如题所述

一、非终结符:

1、非终结符可以再分成更细的东西。

2、不是终结符的都是非终结符。非终结符可理解为一个可拆分元素,而终结符是不可拆分的最小元素。终结符号就是语言中用到的基本元素,名词、动词、形容词、助词等等基本语言单位。

二、终结符:

1、终结符直接就代表一个意思,比如关键字if就不能再分成i和f了。

2、通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导。非终结符则是"语法"中用到的元素,除非谈论"语法",一般交谈语言中并不会用到非终结符。比如:主语、短语、词组、句子。

扩展资料:

终结符和非终结符在计算机科学和语言学的领域是用来指定推导规则的元素。在某个形式语法之中,终结符和非终结符是两个不交的集合。

从形式语言中定义看,终结符(T)就是不可再分的字符或串。而非终结符(N)是一个递归形式的定义:由终结符和至少一个非终结符号组成的串。

如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。

需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。

参考资料:

百度百科-终结符

百度百科-编译

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11
终结符,通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行 推导。
不是终结符的都是非终结符。非终结符可理解为一个可拆分元素,而终结符是不可拆 分的最小元素。本回答被网友采纳
第2个回答  2018-03-04
个人总结,终结符是:关键字,数字,常量,通俗讲,已经明确知道其代表的含义的。比如,for循环中的,for这个单词,是关键字,已经明确知道其含义,for就是一个终结符。类似"("等,都是不可再推导分析,并且已经明确知道含义。
相似回答