什么是编译器
CPU只能执行较为低级的语言,比如二进制代码或汇编指令,但是手写汇编及二进制代码效率很低,我们需要用相对更容易让人接受和理解的语言方式来编写代码。所以,现代语言基本都是数学公式加逻辑控制的语句组成。
但是这些代码并不能直接运行在CPU上,需要有相关的程序把这些高级语言转换成汇编或二进制代码。这种转换的程序就是编译软件。
开发语言的核心就是定义语言,开发与之对应的编译器。
编译的过程有哪些?
参考人类如何理解汉语及英语,我们需要把语言拆成单词,按照单词词性组合成短语及句子,再分析句子的意思,然后用通用的语言来表示这些意思。如果要用英语来表示,那就再翻译成英语;如果用汉语来表示,那就再翻译成汉语,同样的可以翻译为任何语言。
这与编译器对应就是:
词法分析
语法分析
语义分析
中间代码
目标机器代码
为什么要设计中间代码?
全球有多种语言(汉语、英语、法语、日语、韩语),如果我们用一种中间表示来表达意思,那么我们就能复用中间意思转换到不同国家的语言的转换过程。对应的在计算机中其实有多种CPU,不同的CPU有不同的指令集。我们将不同编程语言翻译成中间代码,那么就能复用中间代码转换到不同CPU体系的转换程序。