在进行编程的时候,我们所写的代码是不会直接被计算机执行的,而是需要进行编译处理,把我们可读性高的代码转化成计算机可执行的指令,这就是代码要被编译的原因。
编译器能够对代码进行语法的分析,确保代码的正确性,而且还可以解决一些代码中的错误,从而让代码在执行的时候更加的高效、正确。
在代码被编译的过程中,分为两个主要的阶段:编译阶段和链接阶段。编译阶段主要是针对单个文件进行编译,把高级语言代码翻译成机器语言代码。链接阶段则是将多个源文件合并成可执行文件的一个过程。
编译阶段可以分为以下三个步骤:
1)词法分析(Lexical analysis):将源代码分解成各个单独的词素(token),比如:关键字、标识符、运算符等。
2)语法分析(Syntax analysis):根据词法分析生成的 token 接收程序代码,并且根据程序是按照什么样的语法规则编写的,在内存中建立语法树。
3)语义分析(Semantic analysis):为了保证语义上的正确性,记录并检查变量名、作用域、类型等重要的相关信息。
代码被编译后有以下几点优点:
1)可执行文件的体积非常小,特别是对于需要占用大量空间的软件,如图形应用程序和媒体应用程序。
2)可执行文件的执行速度能得到很大的提升,因为它们直接运行在本地系统上,不需要经过任何解释步骤。
3)编译器会进行许多安全性的检查,这些检查可以确保可执行文件能够避免许多可能引发攻击的缺陷,提高了软件的可靠性。
代码为什么要编译,可以说是保证代码的正确性、提高可执行文件的执行速度和安全性等多方面的原因。在编写代码的过程中,我们要注重代码的质量,编写安全、高效、可靠的代码,通过编译器的进行编译后,才能真正意义上的将代码应用,并得到我们预期的结果。