8.3编译器负责转换代码

      能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器。每个编写源代码的编程语言都需要其专用的编译器。将C语言编写的源代码转换成本地代码的编译器称为C编译器。

      编译器首先读入代码的内容,然后再把源代码转换成本地代码。编译器中就好像有一个源代码同本地代码的对应表。但实际上,仅仅靠对应表是无法生成本地代码的。读入的源代码还要经过语法解析、句法解析、语义解析等,才能生成本地代码。

      根据 CPU类型的不同,本地代码的类型也不同。因而,编译器不仅和编程语言的种类有关,和 CPU 的类型也是相关的。例如,Pentium等 x86 系列 CPU 用的C编译器,同 PowerPC 这种 CPU 用的C编译器就不同。从另一个方面来看,这其实是非常方便的。因为这样一来,同样的源代码就可以翻译成适用于不同 CPU 的本地代码了(图 8-5)。

 

       因为编译器本身也是程序的一种,所以也需要运行环境。例如,有Windows用的C编译器、Linux用的C编译器等。此外,还有一种交叉编译器,他生成的是和运行环境中的CPU不同的CPU使用的本地代码。例如,在Pentium系列CPU的Windows这一运行环境下,也可以做成SH及MIPS等CPU用的Windows CE程序,而这就是通过使用交叉编译器来实现的。

      

posted @ 2023-02-13 15:35  原魏薯片  阅读(34)  评论(0)    收藏  举报