编译原理
概述何为编译将高级语言翻译为汇编语言或者直接翻译为机器语言的过程叫做编译,将汇编语言翻译为机器语言的过程叫做汇编。
源程序先经过预处理器处理,预处理器会将存储在不同文件中的源程序聚合再一起,同时把被称为宏的缩写语句转换为原始语句,接着通过编译器,转换为汇编语言程序。汇编语言程序经过汇编器转为可重定位的机器代码(可重定位是指在内存中的起始位置不固定)
编译系统的结构
分析部分,生成中间代码,称为前端
词法分析
语法分析
语义分析
中间表示
综合部份,生成目标语言,称为后端
目标代码生成
目标代码优化
词法分析概述从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型,将识别出的单词转换成统一的机内表示——词法单元(token)
token由种别码和属性值构成
单词类型
种别
种别码
关键字
if、else、then……
一词一码
标识符
变量名、方法名……
多词一码
常量
整型、字符型……
一型一码
运算符
算数、关系、逻辑
一词一码或一型一码
界限符
;(){}……
一词一码
一词一码的token有时不需要属性值也可,种别码通常是整数,当 ...