软件设计师备考笔记【day5】-程序设计语言与语言处理程序

一,编译程序

1,编译程序结构图
2,编译与解释的区别
特性 编译方式 解释方式
处理流程 必须完整执行:词法分析 → 语法分析 → 语义分析 → 目标代码生成 也会做词法 / 语法 / 语义分析,但不生成目标代码,边分析边执行
目标代码 会生成机器可执行的目标代码(如.exe) 不生成目标代码,执行时依赖解释器
中间代码 可选,不是必须的(有些简单编译器直接从语义分析生成目标代码) 一般不生成中间代码
执行效率 一次编译,多次执行,效率高 边解释边执行,效率低

二,各阶段具体作用

1,词法分析

把源代码拆成一个个 "单词"(标识符、关键字、运算符等)

2,语法分析

检查代码是否符合语法规则,生成语法树

3,语义分析

检查逻辑,类型、变量声明等语义错误,生成中间代码

4,中间代码生成

生成与机器无关的中间表示(如三地址码)

5,目标代码生成

把中间代码翻译成机器指令,寄存器分配(决定哪些变量放在寄存器里,提高访问速度)、指令选择、地址分配

三,其他考点

1,后缀式(逆波兰式)

后缀式 = 操作数在前,运算符在后

运算顺序:先算的,先放后面

括号优先、先乘除后加减,谁先算,谁先拼成后缀。

相关推荐
咖啡忍者27 分钟前
【SAP BASIS】Section 5: SAP System Configuration
笔记
一隅论数智6 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
深圳老胡6 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Because_of_Her16 天前
并查集-听课笔记
笔记·算法·并查集
彧azz6 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
陈卫军老师6 天前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营
`流年づ6 天前
人工智能学习笔记 - 补充
人工智能·笔记·深度学习·学习
qeen876 天前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
从零开始的嵌入式之旅6 天前
day47
arm开发·经验分享·笔记·嵌入式硬件
陈年老古董6 天前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib