编译:将高级语言翻译成汇编语言或机器语言的过程。
源程序----预处理器----经过预处理的源程序-----编译器-----汇编语言程序-----汇编器-----可重定位的机器代码------链接器/加载器------目标机器代码。
SDT语法制导翻译
零、语言及其文法
1.字母表
正闭包
克林闭包
串
串上的运算——连接、幂运算
2.文法的定义
G=(Vt,Vn,P,S)
终结符、非终结符、产生式集合、开始符号
3.语言的定义
推导:
规约:
句型:一个句型中既可以包含终结符,又可以包含非终结符,也可能是空串。
句子:不包含非终结符的句型。
语言(L(G)):由文法G的开始符号S推导出的所有句子构成的集合称为文法G生成的语言,记为L(G)。
4.文法的分类
Chomsky
上下文无关文法(CFG)
正则文法(RG):左线性文法、右线性文法
5.CFG的分析树
推导的图形化表示。
短语:给定一个句型,其分析树的每一棵子树的边缘称为该句型的一个短语。
直接短语:如果子树只有父子两代结点,那么这棵子树的边缘称为该句型的一个直接短语。
一、词法分析
主要任务:从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型。将识别出的单词转换成统一的机内表示——词法单元(token)形式。
token:<种别码,属性值>