BUAACT-Chap10-语义分析和代码生成 第十章 语义分析和代码生成 本章假设:源语言:通用的过程语言(不是面向对象的语言)生成代码:栈式抽象机的(伪)汇编程序 P-code翻译方法:自顶向下的属性翻译语法成分翻译子程序的参数设置:继承属性为值形参综合属性为变量形参语法成分翻译动作子程序的参数设置:继承属性为值形参综合属性不设形参,而作为动作子程序的返回值(由 RETURN 语句返回) 10 2022-10-08 编译技术课堂笔记 #BUAA #编译技术
BUAACT-Chap09-语法制导翻译技术 个人感觉这一章还是挺难的,后悔上课的时候没有好好听,自己课下看PPT花了好大功夫也是看云里雾里不明不白。后来我在课程群里看到了课程的回放视频,重新听了一遍才发现邵兵老师讲的是真的好,给老师跪了! 2022-10-06 编译技术课堂笔记 #BUAA #编译技术
BUAACT-Chap07-源程序的中间形式 第七章 源程序的中间形式 7.1 波兰表示 7.1.1 表达式的波兰表示 例:赋值语句的波兰表示:12 A := F * 3.1416 * R * (H + R)=> A F 3.146 * R * H R + * := 由中缀表达式翻译为波兰表示算法:设一个操作符栈;当读到操作数时,立即输出该操作数,当扫描到 2022-10-06 编译技术课堂笔记 #BUAA #编译技术 #P-code #三元式 #四元式 #SSA #语法树
BUAACT-Chap06-运行时的存储组织及管理 第六章 运行时的存储组织及管理 6.1 概述 6.1.1 运行时的存储组织及管理 目标程序运行时所需要存储空间的组织与管理以及源程序中变量存储空间的分配。 6.1.2 静态存储分配和动态存储分配 静态存储分配 在编译阶段由编译程序实现对存储空间的管理,和为源程序中的变量分配存储的方法。 条件 如果在编译时能够确定源程序中变量在运行时的数据空间大小,且运行时不改变,那么就可以采用静态存储分配方法。 2022-09-21 编译技术课堂笔记 #BUAA #编译技术
BUAACT-Chap05-符号表管理 第五章 符号表管理技术 5.1 概述 5.1.1 什么是符号表 在编译过程中,编译程序用来记录源程序中各种名字的特性信息,所以也称为名字特性表。 名字: 程序名、过程名、函数名、用户定义类型名、变量名、常量名、枚举值名、标号名等。 特性信息: 上述名字的种类、类型、维数、参数个数及目标地址(存储单元地址)等。 5.1.2 建表和查表的必要性(符号表在编译过程中的作用) 源程序中变量要先声明,然 2022-09-19 编译技术课堂笔记 #BUAA #编译技术 #符号表管理
BUAACT-Chap04-语法分析 第四章 语法分析 4.1 语法分析概述 功能:根据文法规则,从原单词程序符号串中识别出语法成分,并进行语法检查。 基本任务:识别符号串 S 是否为某语法成分。 两大分析方法: 自顶向下分析 自底向上分析 4.2 自顶向下分析 4.2.1 自顶向下分析的一般过程 给定符号串 \(S\),若预测他是某语法成分,那么可根据该语法成分的文法,设法为 \(S\) 构造一棵语法树。 如成功,则 \(S\ 2022-09-19 编译技术课堂笔记 #BUAA #编译技术 #语法分析
BUAACT-Chap03-词法分析 第三章 词法分析 3.1 词法分析程序的功能及实现方案 3.1.1 词法分析的功能 根据词法规则识别及组合单词,进行词法检查; 对数字常数完成数字字符串到(二进制)数值的转换; 删去空字符和注解。 3.1.2 实现方式 词法分析单独作为一遍 词法分析程序作为单独的子程序(一遍扫描) 3.2 单词的种类及词法分析程序的输出形式 单词的种类:保留字:begin 2022-09-12 编译技术课堂笔记 #BUAA #编译技术 #词法分析
BUAACT-Chap02-文法和语言的概念和表示 第二章 文法和语言的概念和表示 2.1 形式语言基础 2.1.1 字母表和字符串 字母表:符号的非空有限集,例:\(\Sigma=\{a, b, c\}\) 符号:字母表中的元素,例:\(a, b, c\) 符号串:符号中的有穷序列,例:\(a, aa, ac, abc, ...\) 空符号串:无任何意义的符号串\((\varepsilon)\) 符号串集合:由符号串构成的集合 2.1.2 符号串 2022-09-02 编译技术课堂笔记 #BUAA #编译技术 #文法
BUAACT-Chap01-概论 第一章 概论 1.1 基本概念 计算机五部分:输入、输出、运算器、控制器、存储器。——邵兵 低级语言: 字位码、机器语言、汇编语言。 特点:与特定的机器有关,功效高,使用复杂、繁琐、费时、易出错; 高级语言: Fortran、Pascal、C语言等。 特点:不依赖具体机器,移植性好,对用户要求低,易使用,易维护。 源程序: 用汇编或高级语言编写的程序。 目标程序: 用目标语言表示的程序。 翻译 2022-08-30 编译技术课堂笔记 #BUAA #编译技术
萌新C语言入门指南 温暖的假期将要结束,快乐的大学生活将要来临……咳咳,我猜大部分新生应该没有编程基础吧,为了帮助大家适应学校内容多、进度快、强度高的C语言课程,我特意制作了本篇教程,旨在给新生们一个大致方向上的预习指导。大家在有一定基础之后来到学校再学习C语言的话就会较快的适应了。(好耶,是新教程) 2022-08-11 朴素的 C 语言教程 #BUAA #C语言 #开发工具