zoukankan      html  css  js  c++  java
  • 作业三

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

    第二章:文法和语言  

    总结:文法即用来描述语言语法的工具

    重要知识点:文法的形式定义、 上下文无关文法、正规文法 推导、短语、分析树、二义性 

    文法的形式定义:文法又称语法,即从形式上描述和规定语言结构,而通过建立语法规则(产生式)可以用来描述如何产生句子,又由产生式可以来推导句子,其推导过程的语法产生的语法树又叫做推导树。

    上下文无关文法:所定义的语法单位完全独立于这种语法单位可能出现的上下文环境,许多语法单位的结构可以用上下文无关文法来描述。

    例:描述算术表达式的文法G: G=({i,+,-,*,/,(,)},{<表达式>,<项>,<因子>},<表达式>,&)

    其中&: <表达式>-><表达式>+<项> | <表达式>-<项> | <项> <项>-><项>*<因子> | <项>/<因子> | <因子> <因子>->(<表达式>) | i

    正规文法 推导:

    短语:对于文法G=(VT,VN,S,&),假定aB&是文法G的一个句型,

    如果存在:S *->aA&,并且 A +->B,则称B是句型aB&关于非终结符号A的短语。

    分析树:推导的图形表示,又称推导树。

    二义性 :如果一个文法的某个句子有不止一棵分析树,则这个句子是二义性的句子。

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

    整数n

    标识符i

    表达式e

    条件语句

    赋值语句

    复合语句

    函数

    程序

    ...

    答:
    整数n <整数n>::=int <标识符n>=<无符号整数>|<有符号整数>;
    标识符i <标识符i>::= <字符类型> <字母|数字>;
    表达式e <表达式> ::= [+ | -] <项> { <加法运算符><项>}
    条件语句 <表达式>{语句} ;|<表达式>{句子}
    赋值语句 <标识符>=<无符号整数>|<有符号整数>;
    <复合语句> ::= BEGIN <语句> {;<语句>} END
    函数 <数据类型> <标识符>(形式参数...){句子;...}
    <程序> ::= <分程序>.
    <分程序> ::= [<常量说明部分>] [<变量说明部分>]
    [<过程说明部分>] <语句>

    本题参考博文:http://m.dongcoder.com/

  • 相关阅读:
    Java设计模式之装饰模式
    学习Emacs系列教程(二):导航
    Android ProgressDialog 延时消失
    java设计模式装饰模式
    Java 字节流和字符流的相互转换
    emacs配置颜色主题
    Android ProgressDialog的使用
    个人管理 时间管理GTD流程图
    jQuery - 列表控件推荐
    WPF - 模板查看工具:Show Me The Template及如何查看第三方主题
  • 原文地址:https://www.cnblogs.com/hongxinma/p/11577262.html
Copyright © 2011-2022 走看看