程序语言编译器是怎样被计算机识别的

上一篇 / 下一篇  2013-12-17 16:04:26

编辑程序要利用相应的编译器,代码被编译器识别,那么编译器既然可以更改语法规则,这些规则是怎样被原始计算机识别呢?源代码是由字符组成的吧?
明白这一点就好办了
编译器首先将你写的代码读入内存,然后寻找代码中的关键字、标识符等信息,建立一个所谓的符号表,根据这个符号表对你的源代码进行检查,检查的依据正是该语言的语法和句法规则。比如是否有变量重复定义错误、是否有类型不兼容错误,是否有遗漏语句分隔符错误等等。这些都是比较简单的,例如根据语言的关键字表可以检查是否有非法的关键字(语句分隔符之后的下一个有效字符一定是一个关键字或已定义的标识符,因此很容易识别并挑出其中的关键字进行检查),其它检查也是类似的。
检查没有问题后,编译器开始链接和映射操作(该过程在检查阶段也有使用),将你的源程序翻译成汇编程序或其它中间程序。这一步是最复杂的,因为句法和语法比较简单,但整个程序的逻辑却复杂的多,而且编译器还要负责在不改变代码原意的前提下将代码尽可能地进行优化。
最后就是将生成的汇编代码翻译为机器语言,这一步是最简单的,因为汇编只是将机器语言简单符号化而已,现在的编译理论已经能够确保将汇编代码准确地翻译为机器码了。
以上。

TAG:

 

评分:0

我来说两句

Open Toolbar