一个现代编译器的主要工作流程如下:
源代码(source code)→
预处理器(preprocessor)→
编译器(compiler)→
汇编程序(assembler)→
目标代码(object code)→
链接器(Linker)→
可执行文件(executables)
字节码(Bytecode)通常指的是已经经过
编译,但与特定
机器码无关,需要
直译器转译后才能成为
机器码的
中间代码。
AST 的抽象程度比 Bytecode 要更高一级。字节码比机器码占用更小的内存。
汇编语言对应着不同的
机器语言指令集。通过相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为
汇编过程。
C 语言比汇编语言高级
解释器(interpreter, parser),是一种计算机
程序,能够把高端
编程语言一行一行解释运行。
编译器(compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
// 词法分析(字符流char stream 转换成标记流token stream) -> 语法分析(更具语法规则生成 AST) -> 语义分析