Luckyxyz
首页
归档
关于
友链
切换模式
返回顶部
首页
技术实践
书斋絮语
说点儿什么
Luckyxyz
首页
技术实践
书斋絮语
说点儿什么
首页
归档
关于
友链
【软考】python 错题、编译器解释器工作阶段、词法分析、语法分析、语义分析
技术实践
·
昨天
Luckyxyz
# 错题 关于 python 错误说法:用 try 捕获异常,有 except,无需执行 finally 解释: - `finally` 块是可选的,但如果写了 `finally`,它一定会执行,无论是否发生异常 - `try` 语句的完整结构: `try` --> `except` --> `else`(可选)--> `finally`(可选) - 有 `except` 不代表可以忽略 `finally`,两者互不影响 正确说法:可以使用 raise 关键字来手动抛出异常 ```python raise ValueError("这是一个手动抛出的异常") ``` `raise` 可以主动触发异常,常用于参数校验等场景 错误说法:except Exception 可以捕获所有异常 - `Exception` 可以捕获 **大多数** 常见异常 - 但 **不能捕获** `SystemExit`、`KeyboardInterrupt`、`GeneratorExit` 等继承自 `BaseException` 的异常 - 要捕获 **所有** 异常需用 `except BaseException` 错误说法:可以用 switch...case 语句表示选择结构 - Python 3.10 之前,没有 `switch...case` 只能用 `if...elif...else` - Python 3.10 之后,引入了 `match...case` 语句,但语法不是 `switch...case` --- # 语义规则 使用 **语义规则** 可以定义一个程序的意义 词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。 --- # 编译、解释的运行阶段 编译:  ## 编译方式的工作阶段: 词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成 ## 解释方式的工作阶段: 词法分析、语法分析、语义分析 对于 编译器和解释器来说,前三个阶段:词法分析、语法分析、语义分析,是不可以省略,且顺序不可以变的 对于编译器来说,中间代码生成、代码优化,是可以省略的 --- # 符号表 符号表跟上面六个阶段都有关 不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入符号表中 记录源程序中各个字符的必要信息,以辅助寓意的正确性检查和代码生成 --- # 词法分析 把源程序给编译器后的第一个阶段就是词法分析,所以 词法分析的输入:源程序 这个阶段的任务是对 源程序 从前到后(从左到右)逐个字符地扫描,从中识别出一个个 “单词” 符号。 这里的 “单词” 符号是程序设计语言中的基本语法单位,如,关键字(保留字)、标识符、常数、运算符、分隔符等 词法分析程序输出的 “单词” 常以二元组的方式输出,即单词种别和单词自身的值。--> 词法分析的输出:记号流 --- # 语法分析 输入:记号流(就是词法分析的输出) 输出:语法书(分析树) 语法分析后,就能够正确地构造出其语法树(分析树) 语法分析主要是确定这一行语句的结构有没有问题,比如是否少写了个 `;` ,或者 括号不匹配,或者变量没有定义 --- # 语义分析 输入:语法树(分析树) 不需要关心输出 语义分析:分析各语法结构的含义,检查源程序是否包含 **静态语义错误**,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确才能翻译成正确的目标带吗 语义分析主要是进行 **类型分析** 和 **检查** 语义分析阶段不能发现程序中的所有语义错误,不能发现动态语义错误,动态语义错误在运行时才能发现
软考
取消回复
提交评论
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号