文法和语言总结和梳理

梳理第二章的内容,写一篇理解与总结。

本章学习了文法和语言的相关知识,比如:文法的直观概念、符号和符号串,文法和语言的形式定义、文法的类型、语法树和句型的分析等。

字母表是元素的非空有穷集合,元素称为符号,字母表也称为符号集。

由字母表中的符号组成的任何有穷序列称为符号串。

文法的类型有四种:0型文法、I型文法或上下文有关文法、2型文法或上下文无关文法、3型文法或正规文法,四种文法限制越来越严格,所以正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的。描述上下文无关文法的句型推导的直观工具,即语法树,文法G =(VN,VT,P,S),对于G的任何句型都能构造与之关联的语法树。文法的推导过程分为:最左推导和最右推导,最右推导也称为规范推导。

文法的二义:某个句子对应有两颗不同的语法树。

 有关文法的实用限制:在实际使用中,限制文法中不能有有害规则和多余规则,有害规则,对描述语言没有必要的,容易引起文法的二义性,多余规则是指文法中那些连一个句子推导都用不到的规则,这一类规则在文法的推导中根本不可能用到它。

 

参考于 http://www.doc88.com/p-9713794071234.html

由于不会,就上网查询

 <程序>-><分程序>

<分程序>->[<常量说明部分>][<变量说明部分>][<过程说明部分>] <语句>

<常量说明部分>->CONST<常量定义>{,<常量定义>};

<常量定义>-><标示符>=<无符号整数>

<无符号整数>-><数字>{<数字>}

<变量说明部分>->VAR<标示符>{,{标示符}};

<标示符>-><字母>{<字母>|<数字>}

<过程说明部分>-><过程首部><分程度>;{<过程说明部分>}

<过程首部>->procedure<标示符>;

<语句>-><赋值语句>|<条件语句>|<当型循环语句>|<过程调用语句>|<读语句>|<写语句>|<复合语句>|<空>

<赋值语句>-><标示符>:=<表达式>

<复合语句>->begin<语句>{:<语句>}<end>

<条件>-><表达式><关系运算符><表达式>|ood<表达式>

<表达式>->[+|-]<项>{<加减运算符><项>}

<项>-><因子>{<乘除运算符><因子>}

<因子>-><标识符>|<无符号整数>|(<表达式>)

<加减运符>->+|-

<乘除运算符>->*|/

<关系运算符>->=|#|<|<=|>|>=

<条件语句>->if<条件>then<语句>

<过程调用语句>->call<标识符>

<当型循环语句>->while<条件>do<语句>

<读语句>->read(<标识符>{,<标识符>})

<写语句>->write(<标识符>{,<标识符>})

<字母>->a|b|c....x|y|z

<数字>->0|1|2....7|8|9

posted @ 2019-09-26 18:58  Doctor-Chan  阅读(286)  评论(0编辑  收藏  举报