第四次作业--文法和语言总结与梳理(20190924)
1. 梳理第二章的内容,写一篇理解与总结。
语言:字母表上的特定符号串的集合,所有的语言运算都是集合运算。
文法可以用四元组G=(VN,VT,P,S)表示

文法类型为0型文法、1型文法、2型文法、3型文法。

语法树:又称为推导树,用来描述上下文无关的句型推导。
可以分为:子树、短语、句子、句柄、句型。
子树为语法树的一个分支
短语为子数的结点
句子:只含有终结符
句型:0次或多次推导式
容易混淆的知识点:
一个语言可以有多个文法
一个二义性文法可以转化为无二义性文法,二义性语言不存在二义性文法
句子是句型,句型不是句子。
2型文法一定不是3型文法
3型文法一定是2型文法
在推导α=>β的过程中,需要遵循最左(右)推导,即都是对α中的最左(最右)非终结符进行替换。最右推导又称为规范推导。
2. 尝试写出PL/0 语言的文法。
整数n
N->B|N0|NB
B->1|2|...|9
标识符i
I->L|IL|ID
L->a|b|c|...|y|z
D->0|1|2|...|9
表达式e
基本表达式 → 标识符 | 常量 | 字符串 | (表达式)
条件语句
选择语句 → IF(表达式)语句 | IF(表达式)语句 ELSE 语句
stmt->if E1 then if E2 then S1 else S2
赋值语句
文法:<赋值语句>::=<id>:=<表达式>
复合语句
文法:<复合语句>::=begin<语句>{;<语句>} end
函数
文法:<函数>::=function <id>() :
<上述各种组合>

浙公网安备 33010602011771号