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

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

    (1)     几个基本概念和定义

    字母表是一个非空有穷集合,字母表中的元素称为符号,所以字母表又称为符号集

    字母表中的符号组成的任何有穷序列称为符号串;存在空符号串,不包含任何符号,记为ε

             还有一些关于符号串的运算:连接,方幂,集合…..

    (2)   文法

    文法,是指如何由一堆符号组成一个有含义的句子的规则和协议。

             一个句子组成满足一个个规则(产生式)时,可用“→”表示“由...组成”或者“定义为”,来分解这个句子

        一个上下文无关文法G包括四个部分:终结符号,非终结符号,开始符号,产生式。

     

    (3)   文法和语言的推导

    假设G是一个文法,S是开始符号,如果S经过零步或者若干步推出α,那么称α是一个句型。只包含终结符号的句型是一个句子。文法G产生的所有句子构成一门语言,记为L(G)。

             推导的过程有最左推导和最右推导,最右推导又称为规范推导

     

    (4)     语法分析树

    用一种树形的图示来表示这个句型的推导过程,这棵树就被称为“语法分析树”,简称“语法树”。

    对于一个文法,如果它的某些句子对应两棵不同的语法树,这个文法就属于“二义性文法”。

    还可以通过对语法树的分析来得到一个句型推导过程的所有短语,直接短语以及句柄。

     

    2. 尝试写出PL/0 语言的文法。

    整数n

    n->0|1|2|3|……|8|9

    标识符i

    i->a|b|c|……|y|z|A|B|C|……|Y|Z

    表达式e

    e->[+|-]<项>{<加减运算符><项>}

    条件语句

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

    赋值语句

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

    复合语句

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

    函数

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

    程序

    <程序>-><分程序>.

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

    ...

  • 相关阅读:
    五分钟上手Markdown
    css中居中方法小结
    事务和同步锁
    插入排序
    插入排序
    交换排序
    eclipse 常用快捷键
    交换排序
    二叉搜索树(BST)
    二叉树遍历以及根据前序遍历序列反向生成二叉树
  • 原文地址:https://www.cnblogs.com/a1120139442/p/11593301.html
Copyright © 2011-2022 走看看