第一节 语言的翻译

从高级语言到低级语言的翻译叫做编译
从汇编语言到机器语言的翻译叫做汇编
编译原理笔记【第五章 编译概述】

第二节 编译和解释

2.1 编译执行

程序的编译执行
先将源程序翻译成目标程序,再执行目标程序并得到结果
编译原理笔记【第五章 编译概述】

2.2 解释执行

  • 程序的解释执行
    直接由解释程序对源程序进行分析、执行并得到结果
    编译原理笔记【第五章 编译概述】

  • 优点
    解释执行无需生成独立的目标代码,比较容易实现,也更容易移植
    解释执行可以立即执行并得到结果,更加适合于动态语言交互式环境

  • 缺点
    解释执行再执行前必须先进行翻译,比编译执行要花去更多的时间
    解释执行边翻译边执行,无法进行更全面的优化,执行效率较低

2.3 区分编译和解释

  • 在操作系统中,程序执行的基本实体是什么?
    ---------------进程

  • 区别编译执行和解释执行的方式?
    -----检查进程(是目标程序还是解释程序)

    例如c程序的进程就是该程序.exe本身

    python程序的进程是python的解释器python.exe"yourApp.py"

第三节 编译的步骤

3.1 具体步骤

  • 逻辑上可以将编译过程分为两部分
    源程序的分析目标程序的合成

  • 具体
    (1) 词法分析
    (2) 语法分析
    (3) 语义分析和中间代码生成
    (4) 优化
    (5) 目标代码生成

3.2 符号表管理和出错处理

编译的每个步骤都可能涉及到“符号表管理”和“出错处理”。
符号表管理
对各种符号进行查询、建立和更新等操作

出错处理
对发现的错误进行提示、隔离或纠正等操作
编译原理笔记【第五章 编译概述】

3.3 一个C程序片段实例

编译原理笔记【第五章 编译概述】
编译原理笔记【第五章 编译概述】
编译原理笔记【第五章 编译概述】
编译原理笔记【第五章 编译概述】
编译原理笔记【第五章 编译概述】
编译原理笔记【第五章 编译概述】

相关文章: