计算机微刊程序员技术栈

Compiler and Interpreter(编译器和解释器

2019-05-26  本文已影响0人  keith666

原文地址: https://juejin.im/post/5cea0c4be51d45775a70027f

在计算机的世界中,一个Programmer多多少少有听说过编辑器,解释器,机器码,字节码这些名词, 现在我们稍微深入问一问:

本文的目的就是为了理清这些问题.

目录

Type of code(代码的类型)

计算机的代码根据封装程度的高低可以分为以下几类(从低到高):

Level of Programming Language(编程语言的层级)

编程语言根据对机器语言的抽象(封装)程度可以分为两类:

汇编语言的代码需要由汇编器(assembler)将代码转为机器码才能执行,也可以认为是高级语言.

如下图:

image.png

图片来自: Quora: What are the different types of programming languages?

用高级语言编写的程序要么由某种解释器直接执行,要么由编译器(以及汇编程序和链接程序)转换成机器代码, 然后由CPU执行.

下面来介绍编译器和解释器.

Compiler(编译器)

编译器是一个将一种编程语言的代码翻译(translate)为另外一种编程语言的代码的计算机程序. 通常指将高级语言的代码翻译为低级语言的代码.

主要目的是将便于人编写,阅读,维护的高级语言的代码翻译为计算机能解读,运行的机器码.

编译器还有以下几类:

编译器的工作流程

一个编译器的工作流程一般会包括以下几个步骤(顺序执行):

如下图:

image.png

图片来自: The Thing from another World

Interpreter(解释器)

解释器是一种直接执行高级语言代码的计算机程序, 而无需将代码编译成机器码.

解释器执行代码的策略一般有以下三种:

与编译器的执行方式的对比如下图:

image.png

图片来自: Compiler vs Interpreter: Complete Difference Between Compiler and Interpreter

参考

上一篇 下一篇

猜你喜欢

热点阅读