zoukankan      html  css  js  c++  java
  • 2019-09-25作业

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

       在这章内容中,我们学习了程序的文法和语言,通过学习,我肯也能够理解到,机器程序语言和我们的自然语言,即英语中文一样,也是有着自己的文法和语法的,而且相比一般的自然语言有着更加严格的规范,自然语言一般来说,可以衍生许多的不规范的语法,而且还可以读的通顺,但是程序的文法有着严格的规范,因为可能一个语句的文法错误,就会导致整个程序无法运行甚至运行出错。

      1.文法:这是成语语言的表达规则,规定了程序句子的结构,也是一种语言的描述,也称作文法。

      2.字母表:这是元素的非空有穷合集,由于字母表中的元素也称为符号,因此也称作字符集。

      3.符号串:是由字母表中的符号组成的任何有穷序列称为符号串。

      4.字符串运算:1)头尾,例如z=xy,那么z为字符串的头,y为字符串的尾。2)符号串的连接:设x=ST,y=abc,则xy=STabc。4)符号串集合。

      5.规则:也称为重写规则、产生式、生成式。

      6.文法的类型:乔姆斯基把文法分成4种:0型,1型,2型,3型。

      还有句型的推导工具:语法树,也称作推导树。以及句型的分析方法:1)自上而下的分析方法。2)自底而上的分析方法。

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

    整数n

    标识符i

    表达式e

    条件语句

    赋值语句

    复合语句

    函数

    程序

    ...

    解:

    〈表达式〉::=[+|-]〈项〉{〈加法运算符〉〈项〉}

    〈项〉::=〈因子〉{〈乘法运算符〉〈因子〉}

    〈因子〉::=〈标识符〉|〈无符号整数〉|‘(’〈表达式〉‘)’

    〈加法运算符〉::=+|-

    〈乘法运算符〉::=*|/

    〈关系运算符〉::==|#|<|<=|>|>=

    〈条件语句〉::=IF〈条件〉THEN〈语句〉

    〈过程调用语句〉::=CALL〈标识符〉

    〈当型循环语句〉::=WHILE〈条件〉DO〈语句〉

    〈读语句〉::=READ‘(’〈标识符〉{,〈标识符〉}‘)’

    〈写语句〉::=WRITE‘(’〈表达式〉{,〈表达式〉}‘)’

    〈字母〉::=a|b|…|X|Y|Z

    〈数字〉::=0|1|…|8|9

  • 相关阅读:
    kubernetes 集群YAML文件
    kubernetes 集群搭建 -- 二进制方式
    BetterIntelliJ IDEA失效的解决办法:This license BISACXYELK has been cancelled
    win10下迁移EFI分区表
    Java 8 Optional——避免空指针异常的小工具
    4个常见的IO模型——阻塞、非阻塞、多路复用、异步
    CountDownLatch笔记
    JAVA集合-03ArrayList源码解析和使用实例
    Secure Shell登录
    Kali(2020.4版本)遇到的metasploit启动崩溃问题
  • 原文地址:https://www.cnblogs.com/chuichuichui1998/p/11583588.html
Copyright © 2011-2022 走看看