编译原理
从实战中理解编译原理
编译原理,经过对普通编译原理分析,形成了以词典为核心,结合词的数据结构完成编译过程的自成体系技术理论。通过分析词法生成词典(词典发生器),分析语法生成局部代码,并建立数据指针翻译机),组装局部代码生成目标机器语言流并建立程序调用过的对象、指针等数据流空间,最终完成可执行程序(装配器)三个模糊过程(因为这些过程都离不开词典,编译中间会发生相互影响),把高级计算机语言加工成为计算机机器语言代码流,这就是我们提出的编译原理。
实质
计算机程序编译原理的实质就是把程序员员容易理解的高级语言程序代码流翻译成计算机可执行的机器指令代码流。可以使用“一断、二比、三译”形象说明实质。
1、断。按照语言的语法规则扫描断词,结合文法词典把程序字符串流分解成为计算机语言能够识别的基本单元(标识词、运算符)。
2、比。从程序流中找出扩展标识词的定义,建立标识词结构,放入文法词典,服务于新的定义和函数程序代码的编译。程序语句、表达式里面使用的标识可以从词典中比较找到。
3、译。把函数程序文本字符串流中的算术表达式赋值语句控制语句翻译成为计算机机器语言二进制代码流。
4、组装函数翻译后的二进制代码流,明确数据空间地址和大小,生成计算机裸机或操作系统可以执行目标代码
文法
“文法是以有穷的集合刻画无穷的集合的一个工具”,有穷的集合应该是已经出现的,人们普遍接受的词、词组或句子,无穷的集合就是有穷的集合的词、词组或句子,创造新的集合过程和结果,有待进一步认识接受。
我们的文法规定内涵是已经明确定义的和正在定义(声明)的内容。反映到计算机语言程序中就是编程时已经定义的和正在定义(声明)的字符或字符串。文法可以以表的形式,或词典形式存放。
语法
使用“三二术”替代“语法树”。
不管是常数、对象变量、函数,还是“()”,表达式可以看成具有输出的中间量
量1 + 量2 - 量3 * 量4 & 量5>量6
按照表达式的从前到后的顺序,先取表达式三个量和两个计算符,把其中两量和一符优先计算,结果存放在中间量之中,而后再顺序取表达式一符一量,变成新三量两符,重复两量和一符优先计算,直到剩两量和一符,再得到最后计算结果。
对比
与普通编译原理比较(图),从图片可以看出两种编译技术异同。
参考资料
最新修订时间:2024-01-22 20:40
目录
概述
实质
参考资料