编译原理笔记 2025/4/22
基本概念汇编语言与高级程序设计语言的关系/汇编干嘛的高级语言与硬件无关汇编语言的定义与CPU的指令系统直接相关。只要将高级语言编写的程序等价地转换成特定硬件平台所支持的方式来实现汇编程序或机器指令序列那么软件设计师就不必为每种硬件平台重写编写具有相同功能的软件。编译器1.狭义的编译器将高级语言翻译成等价的可执行指令序列或先翻译成汇编再翻译成可执行指令序列2.广义的编译器只要程序在功能和含义上与原来的程序一致就行不管能不能执行。解释器除了编译执行之外还有解释执行。由于高级语言和底层指令系统差别较大因此要实现对程序的解释执行必须在程序解释执行的过程中进行程序的翻译。由于不是被CPU直接执行解释执行的程序在性能上比编译执行的程序慢。虚拟机如java虚拟机定义了一套标准的指令集合字节码。java编译器将java程序翻译成具有相同功能的字节码程序然后由虚拟机对字节码程序进行解释执行。字节码和CPU二进制指令接近解释的就更快。Java编译器还采用即时编译JIT提高执行效率。编译技术词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。词法分析将源代码转换为词法单元序列词法分析程序又称为扫描程序对源程序每个字符进行线性读取语法分析构建抽象语法树AST。成功表明程序符合语法否则存在某种语法错误语义分析验证语义规则。语法分析只给了程序格式正确性的要求语义则给出了程序含义正确的规定中间代码生成生成中间表示获得了程序语义信息理论上就可以将其翻译成汇编代码或二进制机器代码。不过只是理论上这样实际上要先把程序转换为某种形式的中间表示或中间代码对其进行性能、存储优化处理再翻译成可执行代码(一般采用抽象语法树AST中间表示AST前面进行语法、语义分析时已经逐步建立和完善了)代码优化优化以提高性能执行时间与存储空间两方面目标代码生成输入优化后中间代码产生汇编代码或目标机器代码的指令序列具体操作是为每个变量分配具体存储地址使用实际机器的寄存器将每个中间代码指令映射到一条或一组等价且高效的机器指令等编译器按功能分前端和后端前端词法分析、语法分析、语义分析后端代码优化、目标代码生成等前后端通过中间表示和中间代码进行信息交换形式语言与自动机理论基础词法分析语法分析——自顶向下分析方法三个重要集合自顶向下语法分析条件LL1分析方法求三个集合例子E → TEE → TE | εT → FTT → *FT | εF → (E) | i构造LL(1)分析表分析表构造好后分析判断是否满足LL(1)文法的例子LL1分析法例子消除左递归如果使用自顶向下语法分析如递归向下分析法、LL1分析法必须消除左递归消除左递归是一道文法变换的题。消除左递归例子判断是否能使用LL1分析方法如果能构造LL1分析表语法分析——自底向上分析方法简单优先分析1.简单优先文法及其优先关系2.矩阵的构造3.简单优先分析算法例判断是否是简单优先文法完整例子LR分析法这里的L表示从左向右扫描输入串R表示构造一个最右推导的逆过程。由于LR(k)分析方法对文法的限制很少因而大多数能用上下文无关文法描述的程序设计语言都可用LR分析法进行有效的分析。因此LR分析法是当前最一般的语法分析方法。LR(0)已知文法构造状态机和分析表的例子例子语义分析和符号表中间代码生成中间代码优化

相关新闻

5个实战场景深度解析:如何用GBrain智能大脑解决知识管理痛点?

5个实战场景深度解析:如何用GBrain智能大脑解决知识管理痛点?

5个实战场景深度解析:如何用GBrain智能大脑解决知识管理痛点? 【免费下载链接】gbrain Garrys Opinionated OpenClaw/Hermes Agent Brain 项目地址: https://gitcode.com/gh_mirrors/gb/gbrain 你是否曾花费数小时在堆积如山的笔记中寻找某个会议…

2026/7/30 18:17:43 阅读更多 →
MKS 153F-16205 智能控制器

MKS 153F-16205 智能控制器

MKS 153F-16205智能控制器是MKS Instruments公司的一款集成式下游压力控制设备,内置节流阀与驱动电路。15条特点:该型号(153F-16205)内置节流阀和控制电路。无需外接控制器箱体,一体化设计。支持压力控制和位置控制两种…

2026/7/30 18:17:43 阅读更多 →
Excel批量搜索神器:3步搞定海量Excel文件内容检索的终极解决方案

Excel批量搜索神器:3步搞定海量Excel文件内容检索的终极解决方案

Excel批量搜索神器:3步搞定海量Excel文件内容检索的终极解决方案 【免费下载链接】QueryExcel 多Excel文件内容查询工具。 项目地址: https://gitcode.com/gh_mirrors/qu/QueryExcel 还在为在成百上千个Excel文件中查找特定信息而烦恼吗?QueryExc…

2026/7/30 18:17:42 阅读更多 →

最新新闻

苏州独石传媒:从2026智博会到低空经济大会,拆解大型产业活动执行全流程SOP与节点控制

苏州独石传媒:从2026智博会到低空经济大会,拆解大型产业活动执行全流程SOP与节点控制

在大型产业活动领域,策划方案与现场执行之间往往存在一道隐形的鸿沟。本文以近期在长三角地区举办的2026人工智能产品应用博览会(7月30日-8月1日,苏州国际博览中心)及第2届长三角低空经济产业链高质量发展大会(7月24日…

2026/7/30 18:22:44 阅读更多 →
Codex 任务总中断:ChatGPT Plus 用户该升级 Pro,还是先把需求写清?

Codex 任务总中断:ChatGPT Plus 用户该升级 Pro,还是先把需求写清?

改动做到一半,光标不动了你刚把一个几百行的后端服务目录拖进 Codex 对话框,要求“帮我分析一下整个项目的结构,找出潜在的循环依赖”。Codex 回复了“好的,正在扫描……”,接着输出了两三个模块的说明。然后&#xff…

2026/7/30 18:22:44 阅读更多 →
IPv6 城市级归属地查询-ipv6城市级接口-api接口

IPv6 城市级归属地查询-ipv6城市级接口-api接口

在构建高可用的分布式系统时,IP 地址往往不仅仅是一串数字,它是连接用户与服务的物理锚点。无论是为了优化内容分发路径,还是为了识别潜在的欺诈风险,精准解析 IPv6 地址背后的地理位置信息都显得至关重要。随着 IPv6 普及率的逐年…

2026/7/30 18:22:44 阅读更多 →
Obsidian-i18n:当英语插件遇见中文大脑,你的知识管理工具可以更懂你

Obsidian-i18n:当英语插件遇见中文大脑,你的知识管理工具可以更懂你

Obsidian-i18n:当英语插件遇见中文大脑,你的知识管理工具可以更懂你 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 你是否曾经在Obsidian中发现了一个功能强大的插件,却被满屏的英文界…

2026/7/30 18:22:44 阅读更多 →
Gemini-Balance-Lite进阶开发:自定义代理规则与功能扩展教程

Gemini-Balance-Lite进阶开发:自定义代理规则与功能扩展教程

Gemini-Balance-Lite进阶开发:自定义代理规则与功能扩展教程 【免费下载链接】gemini-balance-lite Gemini API 代理, 把Gemini API免费中转到国内。还可以聚合多个Gemini API Key,随机选取API Key的使用实现负载均衡,使得Gemini API免费成倍…

2026/7/30 18:22:44 阅读更多 →
双职工家庭的照护困局,如何用‘一站式’破局?

双职工家庭的照护困局,如何用‘一站式’破局?

双职工家庭的照护困局,如何用‘一站式’破局?一、现实困境:夹心层的照护焦虑正在蔓延小李和太太都是互联网公司的中层,每天加班到八九点是常态。家里四位老人——父母和岳父母都住得不远,但最揪心的是岳父:…

2026/7/30 18:21:44 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻