编辑器 和 解释器

148 阅读2分钟
  1. 解释器(interpreter)

解释器是一种计算机程序,它将每个高级程序语句转换成机器代码。

  1. 编译器(compiler)

把高级语言编写的程序转换成机器码,将人可读的代码转换成计算机可读的代码(0和1)

  1. 机器语言

一个机器语言程序是由一系列二进制模式组成的(例 110110) 它表示应该由计算机执行的简单操作。机器语言程序是可执行的,所以它们可以直接运行

两者都是将高级语言转换成机器码,解释器在程序运行时将代码转换成机器码,编译器在程序运行之前将代码转换成机器码

两者的区别

Interpreter(解释器)compare(编译器)
程序步骤1、创建代码 2、没有文件链接或机器代码生成 3、源语句在执行过程中逐行执行1、创建代码 2、Compile将解析或分析所有语言语句的正确性。如果不正确,则抛出错误 3、如果没有错误,编译器将把源代码转换为机器码 4、它将不同的代码文件链接到一个可运行的程序(称为exe) 5、运行程序
Input(输入)每次读取一行整个程序
Output(输出)不产生任何的中间代码生成中间目标代码
工作机制编译和执行同时进行编译在执行之前完成
存储不保存任何机器代码存储编译后的机器代码在机器上
执行程序执行是解释过程的一部分,因此是逐行执行的程序执行与编译是分开的,它只在整个输出程序编译后执行
生成程序不生成输出程序,所以他们在每次执行过程中都要评估源程序生成可以独立于原始程序运行的输出程序(以exe的形式)
修改直接修改就可运行如果需要修改代码,则需要修改源代码,重新编译
运行速度
内存它需要较少的内存,因为它不创建中间对象代码内存需求更多的是由于目标代码的创建
错误解释器读取一条语句并显示错误(如果有的话)。你必须纠正错误才能解释下一行编译器在编译时显示所有错误和警告。因此,不修正错误就不能运行程序
错误监测容易
编程语言PHP, Perl, Python, RubyC, C++, C#, Scala,  Java

746846-20201019141325049-842932312.png 编译过程中:词法分析 语法分析 语义分析和目标代码生成是必须的(中间代码生成和代码优化不是必须的)