Luckyxyz
首页
归档
关于
友链
切换模式
返回顶部
首页
技术实践
书斋絮语
说点儿什么
Luckyxyz
首页
技术实践
书斋絮语
说点儿什么
首页
归档
关于
友链
【软考】目标代码生成、动态语义错误、中间代码生成、正规式、有限自动机
技术实践
·
昨天
Luckyxyz
# 目标代码生成 寄存器的分配,处于目标代码生成阶段 --- # 动态语义错误 比如 除数为零: int a = 1 / 0; 可以过语法:因为语句结构没问题,也可以过语义:除号左边右边都整数(静态语义) 但是在运行的时候就会报错,会报 除数不能为 0 的异常 --- # 中间代码生成 中间代码与具体的机器无关,不依赖具体的机器。 最常用的一种中间代码是 与汇编语言的指令非常相似的三地址码,其实现方式是 四元式。 常见的中间代码有:后缀式、三地址码、三元式、四元式、树(图)等形式 中间代码可以跨平台。 因为与具体的机器无关,使用中间代码有利于进行 **与机器无关的优化处理** 和 **提高编译程序的可移植性** --- # 正规式 正规式是 **词法分析** 的一个工具  正规集 由 正规式推出来的 - a|b:a 或者 b 的集合,可以是 a 也可以是 b,但是 a、b 不能一起出现。| 是 选择 - a$^*$:* 是 闭包,表示可以出现 0 次或多次。 - (a|b)$^*$:* 作用于左侧最近的一个整体,因为用括号括起来了,所以 a|b 是一个整体,所以这个正规式表示 多个a或者b - a(a|b)$^*$:以 a 为首的字符 a、b 字符串的集合 - (a|b)$^*$abb:以 abb 为结尾的 a、b 字符串的集合 --- # 有限自动机 是一个 **词法分析** 的工具 ## 确定的有限自动机,DFA 对每一个状态来说,识别字符后转移的状态是唯一的 ## 不确定的有限自动机,NFA 对每一个状态来说,识别字符后转移的状态不是确定的 一个圆圈的:初态,会有一个箭头指向它 两个圆圈的:终态 一个状态既可以是初态,也可以是终态,也可以有多个终态 成功的识别:串要停在终态。中间的过程中不能识别失败 一般是从串的第一个开始识别,比如 1100,是从 最左侧的 1 开始识别  这里的 a,b 是 a|b 的意思,也就是 a 或 b 的意思  这个是 空的意思,不用识别可以直接转移,就是可以跳 比如上面的例子,如果要识别 00。 第一个 0 ,就是从 初态 0 识别,转移到 1,但是 1 后面是 空,所以可以直接转移到 4,4 再识别一个 0,转移到终态 5
软考
取消回复
提交评论
Luckyxyz
我们谈论生活,讨论技术,借由文字,抵达心灵。
热门文章
Obsidian 迁移全记录(又名:纯小白的闭坑指南)
【Kubernetes】第一个实例 - Java Web 应用
新年新气象,关于年终总结,关于未来展望
使用宝塔面板对网站、数据库等进行定时备份到腾讯云 COS 对象存储
2025 年
在细雨中呼喊,在困顿中挣扎
Ubuntu 22.04 server 安装教程
最新评论
山佳Ellen: 有独到的见地,有个性的思想,精彩!
t: 2026 扬帆起航, 喜迎新年,万象更新, 时间旅行,人间探索,...
tls: 赞一个
lovingchina: 我也准备从Joplin迁移到Obsidian,刚好参考你这一篇哈...
tl.s: 很棒的一本书,可以解答很多人们关于人工智能的疑惑。或许未来怎样谁...
tl.s: 很实用 🦆🦆
tl.s: 绘图很清晰,图示质量很高
热门标签
Kubernetes
软考
读书笔记
Linux
Ubuntu
生活随笔
生活
2025
Python3
Debian
Ansible
空间智能
openFuyao
技术实践
在细雨中呼喊
粤ICP备2024349207号