zoukankan      html  css  js  c++  java
  • 4.文法和语言总结与梳理

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

      第二章首先介绍了文法的相关概念以及概念的推导过程,接着介绍了符号和符号串,其中字母表的定义为元素非空有穷集合,字符串为由字母表中的符号组成的任何有穷序列。接着介绍字符串的一些运算,例如:符号串的头尾,固有头和固有尾;符号串的连接;符号串的方幂;符号串集合。文法和语言的形式定义:文法G定义为四元组(VN,VT,P,S),其中VN为非终结符,VT为终结符,P为规则(a→ß)的集合。S为识别符或开始符,不是终结符,至少有一条出现在左边。

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

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

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


    2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)

    整数:n→1|2|3|4|5|6|7|8|9|

    标识符:i→<字母>  <字母>|<数字>

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

    条件语句:<条件语句>→ if <条件>  then<执行语句>

    赋值语句:<赋值语句>→ <标识符>:=<表达式>

    复合语句:<复合语句> → begin<语句>{;<语句>}end

    函数:<函数>→<主函数><其他函数>|<主函数>

    程序:不会做(查无资料)

    ...


    课程作业
  • 相关阅读:
    [原创]Office Word 2010如何使用printer drivers输出PostScript文件
    MATLAB启动时报错: pathdef.m not found 问题解决方法
    Ubuntu 下 Matlab R2010a 错误:`GLIBCXX_3.4.11' not found 的解决办法
    [转] 一阶导和二阶导的含义
    win7 搭建ftp 设置用户权限 远程访问设置
    Ubuntu 中软件的安装、卸载以及查看的方法总结
    64位ubuntu12.04 LTS安装oracle10g笔记
    如何在Ubuntu 12.04 LTS中使用低版本gcc/g++
    HTTP与HttpServlet
    EXP00091错误
  • 原文地址:https://www.cnblogs.com/lingcode/p/11592112.html
Copyright © 2011-2022 走看看