编译原理-绪论

2022-09-14 21:13:462022-09-14 21:13:46

编译

什么是编译

编译:将高级语言翻译成汇编语言或机器语言的过程

高级语言:源语言;汇编语言/机器语言:目标语言

  • 机器语言(Machine Language):可以被计算机直接理解。与人类表达习惯相去甚远,难记忆、难编写、难阅读、易写错

  • 汇编语言(Assembly Language):引入助记符。依赖于特定机器,非计算机专业人员使用受限制,编写效率依然低效

  • 高级语言(High Level Language):类似于数学定义或自然语言的简洁形式。接近人类表达习惯,不依赖于特定机器,编写效率高

ps: 编译型语言和解释型语言-编译型语言在编译过程中生成目标平台的指令,解释型语言在运行过程中才生成目标平台的指令。虚拟机的任务是在运行过程中将中间代码翻译成目标平台的指令。(详细信息可查看参考1)

编译器的结构

可大致分为两部分:前端后端

编译

前端(front end):与源语言相关,又可分为:词法分析、语法分析、语义分析、中间代码生成几个阶段(phase)

后端(back end):与目标语言相关,又可分为:目标代码生成、机器语言优化几个阶段(phase)

其中每个阶段都会读取上一阶段的输出,并产出独特的数据结构

阶段:编译器的逻辑组成,在实际实现过程中,多个阶段可能会被组合在一起(比如语义分析的结果通常会直接表示为中间代码的形式)

参考

程序的编译与解释有什么区别?