1.梳理第二章的内容,写一篇理解与总结。
一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序。程序设计语言的语意常常分为两类:静态语义和动态语义。静态语义是一系列限定规则,并确定哪些合乎语法的程序是合适的;动态语义也称作运行语义或执行语义,表明程序要做什么,要计算什么。
文法是描述语言的语法结构的形式规则
上下文无关文法的特点
它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。
特点:独立性
缺点:不能用来描述自然语言
2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)
整数n n->0|1|2|3|……|8|9
标识符i i->a|b|c|……|y|z|A|B|C|……|Y|Z (<字母>{<字母>|<数字>} )
表达式e ::= [+|-] <项> {<加减运算符><项>}
条件语句 ::= if <条件> then <语句>
赋值语句 ::= <id> :=<表达式>
复合语句 :: = begin<语句>{;<语句>} end
函数 ::= =<主函数>
程序 ::=<分程序>::=[<常量说明部分>][<变量说明部分>][<过程说明部分>]<语句>