0
点赞
收藏
分享

微信扫一扫

8_1 程序设计语言与语言处理程序基础


8_1 程序设计语言与语言处理程序基础_php


8.01 程序设计语言与语言处理程序基础前言

考察:编译原理相关知识点,红框重点掌握

8_1 程序设计语言与语言处理程序基础_服务器_02

8.02 编译过程

高级语言的处理有两种:

编译型,解释型

两者区别:

解释型:写一行代码,回车之后,后台就把相关操作做了,得出结果(有问题也直接知道了)【php】
编译型:整段程序写好了之后,按下编译按钮之后,才做成相应可执行程序,才可以执行【java】

编译型的基本流程

8_1 程序设计语言与语言处理程序基础_php_03

  • 词法分析:非法字符、单词拼写错误等
  • 语法分析:标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误
  • 语义分析【静态语义分析阶段】:运算符与运算对象类型不合法等错误
  • 目标代码生成【动态语义执行阶段】:包括了陷入死循环、变量取零时做除数、引用数组元素下标越界等错误
  • 总结随笔:

例题分析【2017下】

编译过程中进行的语法分析主要是分析(48)D。
A.源程序中的标识符是否合法 B.程序语句的含义是否合法
C.程序语句的结构是否合法 D.表达式的类型是否合法

例题讲解【2021上】

8_1 程序设计语言与语言处理程序基础_推导树_04


8_1 程序设计语言与语言处理程序基础_服务器_05

8.03 文法的定义以及语法推导树

掌握:了解文法,掌握语法推导树

文法的定义

8_1 程序设计语言与语言处理程序基础_推导树_06


8_1 程序设计语言与语言处理程序基础_服务器_07

  • 正则闭包和闭包不要求掌握

文法的分类

8_1 程序设计语言与语言处理程序基础_php_08


8_1 程序设计语言与语言处理程序基础_数据库_09

  • 了解3型

语法推导树【考点】

定义:可以推导这种语法的情况怎么样

8_1 程序设计语言与语言处理程序基础_php_10

  • 可以推导出别的字符为非终结符
  • 不能推导出别的字符为终结符

8_1 程序设计语言与语言处理程序基础_服务器_11

8.04 有限自动机和正规式【考点】

有限自动机【考点】

特点:有限自动机可以表达状态间的转化

8_1 程序设计语言与语言处理程序基础_数据库_12

  • 单圈是初态,双圈或加粗为终态
  • 一般就考察该有限自动机能识别的串是哪一种
例题讲解【2021】

8_1 程序设计语言与语言处理程序基础_有限自动机_13

8_1 程序设计语言与语言处理程序基础_php_14


8_1 程序设计语言与语言处理程序基础_数据库_15


8_1 程序设计语言与语言处理程序基础_php_16


8_1 程序设计语言与语言处理程序基础_有限自动机_17


8_1 程序设计语言与语言处理程序基础_数据库_18

例题讲解2017上【更多例题在8.05】

8_1 程序设计语言与语言处理程序基础_数据库_19


8_1 程序设计语言与语言处理程序基础_数据库_20

正规式【考点】

概念:只是有限自动机的另一种表达形式

实例分析

第一问

第一问的A选项

8_1 程序设计语言与语言处理程序基础_php_21


第一问的B选项

8_1 程序设计语言与语言处理程序基础_php_22

  • 同理C正确,D错误
  • 选D

第二问

正规式分析

8_1 程序设计语言与语言处理程序基础_有限自动机_23

  • ​|​​ 表示的是或关系
  • ​*​​ 表示的是循环多次,0—无穷大

解题

8_1 程序设计语言与语言处理程序基础_有限自动机_24

  • 解题用代入法
  • 将第一空a,b,c都带入进去,都能表示了为正确答案
  • D选项:先若干个ab串,后若干个ba串,第一问a,b都能表示,c表示不了,为错
  • 正确选C

8.05 有限自动机的例题

例题讲解1

8_1 程序设计语言与语言处理程序基础_有限自动机_25

  • 选C,自己推导即可

例题讲解2【2017下】

8_1 程序设计语言与语言处理程序基础_服务器_26

8.06 程序语言基础——表达式的语法树

考察:利用树的遍历来求前缀和后缀表示式

8_1 程序设计语言与语言处理程序基础_数据库_27


解题步骤

  • 先根据表达式构造树
  • 注意括号(起到先后顺序,但是不构造到树里),有括号的放一起,先做括号里的再算外面的加减乘除
  • 有无括号构造的树都不一样
  • 再根据树的遍历结果来写相应表达式
  • 结果为D

例题讲解2017上

8_1 程序设计语言与语言处理程序基础_服务器_28


8_1 程序设计语言与语言处理程序基础_推导树_29

例题讲解【2021上】

8_1 程序设计语言与语言处理程序基础_推导树_30


8_1 程序设计语言与语言处理程序基础_php_31

8.07 函数调用(传值与传址)【重点掌握】

8_1 程序设计语言与语言处理程序基础_数据库_32

  • 区分实参和形参

左:传值,右:传址

8_1 程序设计语言与语言处理程序基础_php_33

  • ​*​​ 形参有这个符号表示指针类型变量

传值原理

8_1 程序设计语言与语言处理程序基础_数据库_34

  • 对应不同的存储空间,是将值复制给了x,y

传址原理

8_1 程序设计语言与语言处理程序基础_服务器_35

  • x,y指向了a,b的存储空间,对应相同的存储空间

例题讲解2017上

8_1 程序设计语言与语言处理程序基础_数据库_36


8_1 程序设计语言与语言处理程序基础_有限自动机_37

例题讲解【2021年上】

8_1 程序设计语言与语言处理程序基础_php_38

8_1 程序设计语言与语言处理程序基础_推导树_39

8.08 各种程序语言的特点

掌握:画圈的基本的特点

8_1 程序设计语言与语言处理程序基础_推导树_40


举报

相关推荐

0 条评论