文章目录

  • 1. 编译原理
  • 1.1 编译原理概述
  • 1.2 编译原理其他用途
  • 1.3 翻译的理解
  • 2. 编译器与解释器
  • 2.1 什么是编译器
  • 2.2 什么是解释器
  • 2.3 混合编译器与即时编译器
  • 2.4 优劣势
  • 3. 编译流程
  • 3.1 词法分析
  • 3.2 语法分析
  • 3.3 语法规则
  • 3.4 语义分析
  • 3.5 翻译:中间代码
  • 3.6 生成机器码
  • 3.7 运行时环境
  • 3.8 编译器处理的两大过程
  • 3.9 分层设计


1. 编译原理

1.1 编译原理概述

llvm混合编译java和c 混合编译器定义_编译原理


llvm混合编译java和c 混合编译器定义_学习_02

1.2 编译原理其他用途

llvm混合编译java和c 混合编译器定义_llvm混合编译java和c_03

1.3 翻译的理解

llvm混合编译java和c 混合编译器定义_编译原理_04


llvm混合编译java和c 混合编译器定义_编译器_05

2. 编译器与解释器

2.1 什么是编译器

llvm混合编译java和c 混合编译器定义_编译器_06


llvm混合编译java和c 混合编译器定义_学习_07

2.2 什么是解释器

llvm混合编译java和c 混合编译器定义_编译器_08

2.3 混合编译器与即时编译器

  • 以Java为例子,先编译成字节码,再翻译成机器码执行
  • 计算机执行的指令都是L0低级语言
  • 编译过程直接执行低级语言
  • 解释过程,由L0低级语言编写的解释器解释高级语言程序
  • Java语言,编译与解释并存,且有及时编译功能,由于字节码的作用,先将高级语言编译成字节码供JVM调用,JVM针对各个操作系统都做了定制,做到一次编译,到处运行
  • llvm混合编译java和c 混合编译器定义_编译原理_09


llvm混合编译java和c 混合编译器定义_系统架构_10


llvm混合编译java和c 混合编译器定义_系统架构_11

2.4 优劣势

llvm混合编译java和c 混合编译器定义_llvm混合编译java和c_12

3. 编译流程

3.1 词法分析

llvm混合编译java和c 混合编译器定义_llvm混合编译java和c_13

3.2 语法分析

llvm混合编译java和c 混合编译器定义_学习_14

3.3 语法规则

llvm混合编译java和c 混合编译器定义_编译器_15

3.4 语义分析

llvm混合编译java和c 混合编译器定义_系统架构_16

3.5 翻译:中间代码

llvm混合编译java和c 混合编译器定义_编译原理_17

3.6 生成机器码

llvm混合编译java和c 混合编译器定义_编译器_18

3.7 运行时环境

llvm混合编译java和c 混合编译器定义_编译器_19

3.8 编译器处理的两大过程

llvm混合编译java和c 混合编译器定义_编译原理_20


llvm混合编译java和c 混合编译器定义_llvm混合编译java和c_21

3.9 分层设计

llvm混合编译java和c 混合编译器定义_编译器_22