- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理教材配套课件 - 哈工大独立博客
* * 1. (人)用C语言编制B机的C编译程序P0(C→B) (A机的C编译P1)编译P0,得到在A机上可运行的P2(C→B) C语言 C语 言 B机器 C语言 A机器 A机器 C语言 A机器 B机器 P0 P1 P2 获得一个工具 2)问题的解决办法 * * 3.(A机的P2)编译P0,得到在B机上可运行的P3(C→B) P2 C语言 C语言 B机器 C语言 A机器 B机器 C语言 B机器 B机器 P0 P3 C语言 C语 言 B机器 C语言 A机器 A机器 C语言 A机器 B机器 P0 P1 P2 获得的工具 * * 4.本机编译器的利用 问题三: A机上有一个C语言编译器,现要实现一个新语言NEW的编译器?能利用交叉编译技术么? 用C编写NEW的编译,并用C编译器编译它 NEW语言 C语 言 A机器 C语言 A机器 A机器 NEW语言 A机器 A机器 P0 P1 P2 * * 5. 编译程序的自动生成 1) 词法分析器的自动生成程序 LEX 词法规则说明 词法分析程序 (C程序) 输入: 词法(正规表达式) 识别动作(C程序段) 输出: yylex( ) 函数 * * 2)语法分析器的自动生成程序 YACC 语法规则说明 语法分析程序 (C程序) 输入: 语法规则(产生式) 语义动作(C程序段) 输出: yyparse( ) 函数 编译技术的应用 把复杂数据看作一条语句 数据格式的分析 利用词法分析、语法分析方法 数据处理的框架 基于语法制导的语义处理框架 编译技术可以用于各种复杂数据的分析处理 编译技术的应用 自然语言的理解和翻译 句子翻译 输入法 语音合成、翻译…… 内容过滤 语法制导的结构化编辑器 程序格式化工具 软件测试工具 程序理解工具 高级语言的翻译工具 …… * * 例1-1 DOS 命令 date 的输出格式 例:9-3-1993、09-03-1993、9-03-93 语法 date → month - day - year 词法 month → DIGIT DIGIT | DIGIT day → DIGIT DIGIT | DIGIT year → DIGIT DIGIT | DIGII DIGIT DIGIT DIGIT * * 例1-1(续) 语义 year(年)、month(月)、day(日) 语义约束条件 0 month.value 13 0 day.value 32,31,30 0 year.value 10000 * * 1.6 本章小结 编译原理是一门非常好的课 程序设计语言及其发展 程序设计语言的翻译 编译程序的总体结构 编译程序的各个阶段 编译程序的组织与生成 1.2 程序设计语言的翻译 翻译程序(Translator) 将某一种语言描述的程序(源程序——Source Program)翻译成等价的另一种语言描述的程序(目标程序——Object Program)的程序。 翻译程序 源程序 目标程序 (*.C / *.PAS) (*.OBJ / *.EXE) * * * * 1.2 程序设计语言的翻译 解释程序(Interpreter) 一边解释一边执行的翻译程序 口译与笔译(单句提交与整篇提交) 源程序 输入数据 计算结果 解释程序 * * 1.2 程序设计语言的翻译 编译程序(Compiler) 将源程序完整地转换成机器语言程序或汇编语言程序,然后再处理、执行的翻译程序 高级语言程序→汇编/机器语言程序 源程序 目标程序 编译程序 * * 1.2 程序设计语言的翻译 SP Compiler S-Source O-Object OP P-Program Input RS RS-Run Sys. Output 编译系统(Compiling System) 编译系统=编译程序+运行系统 支撑环境、 运行库等 * * 1.2 程序设计语言的翻译 其它翻译程序: 汇编程序(Assembler) 交叉汇编程序(Cross Assembler) 反汇编程序(Disassembler) 交叉编译程序(Cross Compiler) 反编译程序(Decompiler) 可变目标编译程序(Retargetable Compiler) 并行编译程序(Parallelizing Compiler) 诊断编译程序(Diagnostic Compiler) 优化编译程序(Optimizing Compiler) * * 1.2 程序设计语言的翻译—汇总 解释程序 数据 结果 编译系统 机器语言程序 机器语言程序 机器语言程序 …… 汇编语言程序 高级语言程序 汇编语言程序 汇
您可能关注的文档
- 线性方程组 - 浙江大学数学系.pdf
- 纤维艺术课件一.ppt
- 纺织服装教亨学会.pdf
- 线轴大变身.ppt
- 细说英文单词连载一:破解单音节英语单词的记忆密码 为什么我们记不 .doc
- 纸风车文教基金会电子报.ppt
- 细说英文单词连载一:破解单音节英语单词的记忆密 码 为什么我们记不住 .doc
- 织物悬垂性的数字化研究技术ξ - 浙江纺织服装职业技术学院.pdf
- 织袜产业动起来美丽蜕变创奇迹 (发布日期:102年4月8日) 针对商业 .doc
- 组网需求.ppt
- 金太阳福建省福州市八县(市,区)协作校2024-2025学年第二学期期末联考政治含答案.doc
- 人力资源招聘与配置规范(T-NMC 005—2025).doc
- CNCA-RC-07:2025 铁路产品认证规则特定要求 密贴检查器.doc
- TCSCP 0058-2025 液体脱硫剂性能评价方法.doc
- AMB陶瓷基板活性焊料及钎焊性能要求(T-CI 917—2025).doc
- 单孔剪切波速测试方法(T-NMRJ 030—2025).doc
- 黑龙江省哈尔滨师范大学附属中学2024-2025学年高二下学期期末考试数学试题(含答案).doc
- 黑龙江省哈尔滨市2024-2025学年高二下学期期末质量检测英语试题(含答案).doc
- 黑龙江省哈尔滨市2024-2025学年高二下学期期末质量检测语文试题(含答案).doc
- 金太阳河北省2024-2025学年高二下学期7月联考地理含答案.doc
文档评论(0)