1.梳理第二章的内容,写一篇理解与总结。
所谓一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序。目前广泛使用的手段是上下文无关文法,即用上下文无关文法作为程序设计语言语法的描述工具。
非终结符
规则的左部符号, 通常用VN 表示。
终结符
在规则的右部, 它是语言不可再分的单位,组成句子的基本单位, 常用VT 表示。
开始符号
为非终结符,又称为识别符号, 常用S表示。
产生式
定义符号串之间关系的一组规则, 形如A→ α,文法规则是产生式, 产生式不一定是文法规则。
推导
由文法开始符号开始推导, 用产生式的右部取代产生式的左部, 直到推到终结符号为止。
推导分为最左推导和最右推导, 最左推导每次替换式子的最左边, 最右替换每次推导式子的最右边。
规约
规约是句子通过文法规则将产生式的左部取代右部, 直到规约到非中介符为止。
2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)
<条件> → <表达式><关系运算符><表达式>|odd<表达式>
<表达式> → [+|-]<项>{<加减运算符><项>}
<项> → <因子>{<乘除运算符><因子>}
<因子> → <标识符>|<无符号整数>|(<表达式>)
<加减运符> → +|-
<乘除运算符> → *|/
<关系运算符> → =|#|<|<=|>|>=
<条件语句> → if<条件>then<语句>
标签:,文法,终结符,推导,右部,规则,左部 来源: https://www.cnblogs.com/hjqq/p/11600038.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。