目录

1,编译程序基础

1.1,词法分析

1.2,语法分析

1.3,语义分析

1.4,中间代码生成

1.5,代码优化

1.6,目标代码生成

1.7,符号表管理

1.8出错处理

2,正规表达式和正规集

3,有限自动机

4,语法分析(语法树)

5,解释程序基础


编译程序基础

编译程序的基础是把某种高级语言书写的源程序翻译成与之等价的目标程序(汇编语言程序或机器语言程序)。编译程序的工作过程分为6个阶段:

词法分析

词法分析是编译过程的第一阶段,这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号

语法分析

语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”“程序”等。语法规则就是各类语法单位的构成规则。通过语法分析确定整个输入串是否构成一个语法上正确的程序。

词法分析和语法分析本质上都是对源程序的结构进行分析

语义分析

语义分析阶段主要分析程序中各种语法结构的语义信息,包括检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码

语义分析的一个主要工作是进行类型分析和检查

中间代码生成

工作是根据语义分析的输出生成中间代码。

代码优化

优化过程可以在中间代码生成阶段进行,也可以在目标代码生成阶段进行。

目标代码生成

任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。

符号表管理

作用是记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改、删除等操作。

出错处理

在编译时发现程序中的错误后,编译程序应采用适当的策略修复它们,使得分析过程继续下去,以便在一次编译过程中尽可能多地找出程序中的错误。

正规表达式和正规集

正规式 正规集
ab 字符串ab构成的集合
a|b 字符串a、字符串b构成的集合
由0个或多个a构成的字符串集合
所有由所有字符a和b构成的串的集合
a 以a为首字符的a、b字符串的集合
abb 以abb结尾的a、b字符串的集合

 运算符的优先级是:“*”(闭包)   >   (连接)   >   "|"(或)

若两个正规式表示的正规集相同,则认为二者等价。例如:b = b, = 

 有限自动机

是一种识别装置的抽象概念,它能准确的识别正规集。分为确定的有限自动机、不确定的有限自动机

确定的有限自动机和不确定的有限自动机的判断:
就是看关于该结点的路径相同数字是否到达不同的结点,如果相同数字不同结点就是不确定的有限自动机。

1,确定的有限自动机DFA

一个DFA可以用两个直观的方式表示:状态转换图、状态转换矩阵

状态转换图是一个有向图,简称转换图。例如:(s0为初态、s3为终态)

 确定的有限自动机能识别的语言是能够从初态到终态的标记串。例如上图的aaa、aaaa是能够识别的有限自动机语言。

2,不确定的有限自动机NFA

DFA是NFA的特例。

 词法分析器的任务是把构成源程序的字节流翻译成单词符号序列

手工构造词法分析器的方法是先用正规式描述语言规定的单词符号,然后构造相应有限自动机的状态转换图,最后依据状态转换图编写词法分析器(程序)。

语法分析(语法树)

程序设计语言的语法常采用上下文无关文法描述。文法不仅规定了单词如何组成句子,而且刻画了句子的组成结构。形式文法是一个规则系统,它规定了单词在句子中的位置和顺序,也描述了句子的层次结构。

对于2+3*4的语法树是:

 解释程序基础

解释程序是另一种语言处理程序,它直接执行源程序或源程序的内部形式

解释程序的系统一般分为两部分:

1,分析部分:包括与编译过程相同的词法分析、语法分析、语义分析程序,经语义分析后把源程序翻译成中间代码,中间代码常采用逆波兰表示形式。

2,解释部分:用来对第一部分产生的中间代码进行解释执行。

软考—程序设计语言—有限自动机、正规式、编译程序基础、语法树、解释程序基础相关推荐

  1. 软考——程序设计语言概述

    目录 1,低级语言 2,高级语言 3,程序设计语言的定义 4,程序设计语言的分类 5,程序设计泛型 面向对象的程序设计语言有Java,C++,C #,python. 程序设计语言是为了书写计算机程序而 ...

  2. 【软考网络管理员】2023年软考网管初级常见知识考点(1)- 计算机硬件基础

    [写在前面]也是趁着五一假期前再写几篇分享类的文章给大家,希望看到我文章能给备考的您带来一些帮助,5月27号也是全国计算机软件考试统一时间,也就不用去各个地方找资料和代码了.紧接着我就把我整理的一些资 ...

  3. [架构之路-177]-《软考-系统分析师》-17-嵌入式系统分析与设计 -2- 系统分析与设计、低功耗设计

    目录 1 7 . 4 嵌 入 式 系 统 开 发 17.4.1 开发平台 1 . 交叉开发环境 2 . 交叉编译环境 17. 2 开发流程 1. 过程模型 2 . 分析与设计方法 17.4.3 软硬件 ...

  4. 天软考c语言,软考中C语言试题问答精选

    问:为何这样会造成死机.请大伙帮帮.在BCB中. DWORD Tid; HANDLE THandle; THandle = CreateThread(NULL, 0, (LPTHREAD_START_ ...

  5. 软考信息安全工程师备考笔记3:第三章网络安全基础备考要点

    第3章:网络安全基础 网络安全基础备考要点 https://www.moondream.cn/?p=1321 扫一扫加入信息安全工程师备考群 欢迎加入最棒的信息安全工程师社群,分享信息安全工程师备考干 ...

  6. 软考信息安全工程师学习笔记三(1.3 信息安全管理基础)

    1.3 信息安全管理基础 欢迎加入最棒的信息安全工程师社群,分享信息安全工程师备考干货资料. 备考交流QQ群:39460595 https://www.moondream.cn/?p=521 一.大纲 ...

  7. 【中级软考—软件设计师】17程序设计语言与语言处理程序基础17.2 编译程序基本原理【**】:17.2.3正规文法 有限自动机

    编译程序基本原理 有限自动机 正规式 有限自动机例题 选C 正规式

  8. 词法分析(五):正规式与有限自动机

    词法分析概述 唉,不想学习,老是想起别的事情 这篇博客讲的是正规式和有限自动机的等价性, 为NFA写出等价的正规式,为一个正规式构造等价的NFA 有了NFA与正规式的关系,就把正规式和前面所述串接起来 ...

  9. 软考--后缀式(逆波兰式)的两种求法

    首先理解概念: 后缀式:又叫逆波兰式 -用"左右根"表示 如图1后缀式:左右根-a+* 如图2后缀式:左右根-a-d*+ Tips:相关的知识 前序遍历:根左右 中序遍历:左根右 ...

  10. 自己的软考软件设计师笔记总结

    文章目录 前言 计算机组成原理 数据的表示 数据的转化 按权展开法(将其他进制转为十进制) 短除法(将十进制转为二进制) 二进制转八进制与十六进制 二进制转八进制 二进制转十六进制 四进制转换十六进制 ...

最新文章

  1. python Pandas SettingwithCopy 警告解决方案
  2. VTK:Filtering之ExtractVisibleCells
  3. JavaScript基础(六)面向对象
  4. 淘云互动机器人_淘云互动APP下载安装_淘云互动app机器人下载安卓官网v2.21.9-麦块安卓网...
  5. 计算机系统-电路设计05-RS触发器的内部电路实现
  6. studio中碰到的jni问题:java.lang.UnsatisfiedLinkError
  7. UOJ356 [JOI2017春季合宿] Port Facility 【启发式合并】【堆】【并查集】
  8. 3 基于采样的路径规划 —— RRT算法
  9. cfa equity
  10. Python简单数据清洗
  11. rplidar 三角测距激光雷达原理
  12. java孢子进化_孢子的进化起源
  13. 2020携程java面试题整理,开发实习一面面经
  14. Git Git用户ssh公钥管理
  15. 空间中球坐标与直角坐标的互化(matlab实现)
  16. 星际争霸人族科技球介绍
  17. 通过GlobalMapper获取的地形模型是否适用于BIM模型
  18. 中国国际“互联网+”大学生创新创业大赛 武汉理工大学总决赛斩获双金
  19. 语音增强 理论与实践 pdf_初中英语语音教学策略研究 (结题报告)
  20. 【uni-app学习】uni-app低功耗蓝牙采坑记录

热门文章

  1. 数学表达式Round2
  2. 攻防演习防御体系构建之第一篇之介绍和防守的四个阶段
  3. TCP/IP基础知识
  4. 网站速度优化4个实用办法
  5. windows只能单向ping通
  6. 若w=1,x=2,y=3,z=4,则条件表达式wx?w : zy?z : x的结果为 4
  7. T3及报税软件报表使用无线打印机打印凭证没反应
  8. kux转mp4_QSV、KUX一秒转换成MP4,这两款神器你还不收藏?
  9. 简单实现手机号验证码注册功能
  10. 计算机主板上安装配件的扩展槽主要有哪些,21.主板篇-主板上都有哪些扩展插槽-电脑自学网...