美文网首页
编译原理系列之一 引论

编译原理系列之一 引论

作者: getianao | 来源:发表于2018-12-23 17:06 被阅读0次

引论

  • 什么是编译程序:

    一个编译程序是一个语言翻译程序,它将源语言程序翻译成目标语言程序。

编译流程
  • 高级语言程序的处理过程:

    需预处理的源程序--(预处理程序)-->源程序--(编译程序)-->目标汇编程序--(汇编程序)-->可重定位的机器语言程序--(连接装入程序)-->可执行的机器语言程序

  • 编译程序的6个阶段及任务:

    词法分析:扫描源程序字符流,识别出有词法意义的单词,返回单词的类别和单词的值,或词法错误信息

    语法分析:在词法分析的基础上将单词序列分解成各类语法短语,确定整个输入串是否构成一个与发生正确的程序。

    语义分析:对语法分析后的程序进行语义分析,不符合语义规则时给出语义错误信息

    中间代码生成:生成容易被翻译成目标代码的中间代码。

    代码优化:对中间代码进行改造,使它生成的目标代码在时间和空间上更加高效。

    目标代码生成:将中间代码变成特定机器上的绝对指令代码或可重定向的指令代码或汇编指令代码。

    逻辑上可分为分析阶段和逻辑阶段,词法分析、语法分析、语义分析为前端,中间代码生成和中间代码优化为中端(有时也归于前端),目标代码生成和目标代码优化为后端。

    完整的编译程序还包括表格管理程序和出错处理程序。

  • 解释程序与编译程序的区别:

    目标代码的执行方式不同,基本原理和方法没有本质上的区别。

  • 解释方式的优点

    提供一种直接的交互调试功能,容易获得较好的动态调试效果。

    使用变量可不预先定义。

    变量性质可动态修改。

  • 解释方式的缺点

    在执行时需动态地对程序进行分析翻译,开销大,其执行速度相当于编译方式的1/10至1/100。

    解释方式占用内存大

  • 解释方式的特点

    不产生目标程序文件
    不区别翻译阶段和执行阶段,翻译源程序的每条语句后直接执行
    程序执行期间一直有解释程序守候
    常用于实现虚拟机

相关文章

  • 编译原理系列之一 引论

    引论 什么是编译程序:一个编译程序是一个语言翻译程序,它将源语言程序翻译成目标语言程序。 高级语言程序的处理过程:...

  • kN_编译原理_2

    大学期间的笔记补全。编译原理内容太多分几次。课本《编译原理》第三版,陈火旺等编著。笔记总目录:一、引论二、高级语言...

  • kN_编译原理_1

    大学期间的笔记补全。编译原理内容太多分几次。课本《编译原理》第三版,陈火旺等编著。笔记总目录:一、引论二、高级语言...

  • kN_编译原理_3

    大学期间的笔记补全。编译原理内容太多分几次。课本《编译原理》第三版,陈火旺等编著。笔记总目录:一、引论二、高级语言...

  • 编译原理 龙书 引论

    语言处理器: 一个集成的软件开发环境, 其中包括很多种类的语言处理器, 比如编译器/解释器/汇编器/连接器/加载器...

  • 编译原理(龙书)-- 引论笔记

    编译原理(龙书)-- 引论笔记 语言处理机 编译器编译器是一个程序,可以阅读某一种语言(源代码),并将之翻译成另一...

  • Flutter环境配置

    Flutter、Golang、Python、编译原理、算法、Chrome原理学习系列文章抢先看请关注【码农帮派】:...

  • Unity和Android通信系列文章4——Android编译成

    编译aar和Unity和Android通信系列文章3——Android编译成jar供unity调用这篇文章原理一样...

  • 编译原理(部分)

    第1章 引论 1.1 什么是编译程序 功能:高级语言程序(源程序)→【编译程序】→低级语言程序(目标程序) 过程:...

  • JS系列(一):编译原理

    诸如 C / C++ / JAVA 等语言,都有对应的编译器,而编译器会将这些高级语言编译成目标机(目标系统,如W...

网友评论

      本文标题:编译原理系列之一 引论

      本文链接:https://www.haomeiwen.com/subject/xlmnkqtx.html