语言的深入理解--编译型和解释型

1 简介

语言是工具,本质上就是用来交流的。
中文、英文、方言等是人类用来交流的,
猫语、鸟语、中华田园语是动物用来交流的,
C、C++、C#、Java、JavaScript、Python、Html、Qml等都是人与机器进行交互的语言。

2 编译型和解释型

2003年,大毛在连云港海头镇买笔记本电脑流程如下:

  • 联想生产笔记本
  • 海头镇中心电脑商城店家从苏北联想总店购买笔记本
  • 大毛去镇中心电脑商城店家选一台笔记本

2020年,二毛在连云港海头镇买笔记本电脑流程如下:

  • 联想生产笔记本
  • 二毛用Mate30打开天猫进入联想专卖店购买一台笔记本

前者就是解释型,需要中间商,
后者就是编译型,去掉中间商。
中间商必赚差价,所以解释型语言效率低与编译型语言,很好理解。

从这一点理解马云2018年吹的牛逼“8年后房价如葱”,就能知道马云想干掉房地产中间商,并且定的项目周期是8年。

2.1 编译型语言

编译型是使用编译器编译后生成X86架构或者Arm架构硬件可直接执行的指令。
编译型代表:C、C++、C#、Java
特点:

  • 编译型语言的源代码有错误编译不通过,无法生成可执行代码,更无法执行程序
  • 编译型语言都为强类型,即必须说明数据的类型,如int a
  • 执行效率高
    在这里插入图片描述
    在这里插入图片描述

2.2 解释型语言

解释型是在运行时才由解释器逐语句去执行。
解释型代表:JavaScript、Python、Html、Qml
特点:

  • 解释型语言只有执行时才会判断是否出错,即使一句出错,也可以继续执行下一句
  • 解释型语言多为弱类型,如js中var a,a可以为字符串也可以为整形
  • 执行效率低
    在这里插入图片描述

3 解释器优化

由于解释器逐行解释太慢,所以对其进行不断的优化,现在解释器运行程序的方法主要有以下三种:
1.直接运行高级编程语言 (如 Shell 自带的解释器)
2.转换高级编程语言码到一些有效率的字节码 (Bytecode),并运行这些字节码(如Python)
3.以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序 (例如:JIT)

4 解释器的设计

linux–解释器

参考

1、程序的编译与解释的区别
2、C–C语言概述
3、linux–解释器

发布了496 篇原创文章 · 获赞 601 · 访问量 155万+

猜你喜欢

转载自blog.csdn.net/qq_38880380/article/details/103829477
今日推荐