2、从此可见 终结符:是用以组成语言中的串的基本符号,与 程序语言中“单词”是同义语; 如:表达式id+(id)*(-id)中,+、-、*、/、↑、id均为 终结符 非终结符:是标记某种串的集合的特定符号, 与“语法变量”、“语法范骑”是同义词; 如:表达式、运算符都表示一个串的集合
2、从此可见 终结符:是用以组成语言中的串的基本符号,与 程序语言中“单词”是同义语; 如:表达式id+(id)*( - id)中,+、-、* 、/、↑、id均为 终结符 非终结符:是标记某种串的集合的特定符号, 与“语法变量” 、 “语法范畴”是同义词; 如:表达式、运算符都表示一个串的集合
开始符号:一个VN,标记感兴趣的语法范辱。其 它非终结符用以定义其它的串集,这有助于定义该语言, 也有助于为它处理的语言提供一个分层的结构; √该语法范畴叫“句子”,在程序语言中叫“程序” √语言的句子是由一串VN定义,到最后才是一串V
✓该语法范畴叫“句子”,在程序语言中叫“程序” ✓语言的句子是由一串VN定义,到最后才是一串VT 开始符号:一个VN,标记感兴趣的语法范畴。其 它非终结符用以定义其它的串集,这有助于定义该语言, 也有助于为它处理的语言提供一个分层的结构;
产生式:规定由终结符和别的语法范畴组成一个 新的语法范畴的办法; 结构:非终结符·>一串非终结符和终结符 如:A->a A -> c ↓ 左部符号 右部候选式 VN a=XX2…Xn,XEV
产生式:规定由终结符和别的语法范畴组成一个 新的语法范畴的办法; 结构:非终结符-> 一串非终结符和终结符 如:A ->α A -> α ↓ ↓ 左部符号 右部候选式 VN α=X1X2 …Xn,Xi∈V
3、习惯记号 VN: 大写字母A、B、C、S等 Vr: 小写字母,0~9,十、一等运算符, 标点,分界符,黑体字母串id、if X、Y、Z: 文法符号,或VN或V一个符号 u、V、w…z:V-中串 a、B、Y:文法符号串EN-UV)* S: 开始符号,第一个产生式中出现 -> 定义为(元语言符号) : 或(元语言符号)
3、习惯记号 VN: 大写字母A、B、C、S等 VT : 小写字母,0~9,+、-等运算符, 标点,分界符,黑体字母串id、if X、Y、Z: 文法符号,或VN或VT一个符号 u、v、 w…z:VT中串 α、β、γ: 文法符号串∈(VT∪VN)* S: 开始符号,第一个产生式中出现 ->: 定义为(元语言符号) |: 或(元语言符号)
问题:表达式语言无穷,如何定义? ●有穷条产生式,产生无穷集,要求产生式必须递归 ●定义算术表达式,用了两条浓缩的产生式,一般定 义一个语言的产生式是很复杂的 ●对递归的算术表达式的产生式,进行反复推导产生 表达式语言
⚫有穷条产生式,产生无穷集,要求产生式必须递归 ⚫定义算术表达式,用了两条浓缩的产生式,一般定 义一个语言的产生式是很复杂的 ⚫对递归的算术表达式的产生式,进行反复推导产生 表达式语言 问题:表达式语言无穷,如何定义?