【JavaScript】JavaScript 简介 ④ ( 解释型语言 和 编译型语言 | 计算机程序本质 | 编译器 和 解释器 )

一、 解释型语言 和 编译型语言


1、计算机程序本质

计算机 的 程序 是在 CPU 上执行的 , CPU 上执行的只有匹配该 CPU 的机器码指令 , 不同类型的 CPU 执行的 机器码指令 格式不同 , X86 和 ARM 执行的 机器码 指令格式是不同的 ;

机器码指令 是 二进制的 , 所有在 计算机 上执行的程序 , 都是 若干 二进制机器码 的集合 ;

计算机 只能执行 二进制机器语言 , 所有的语言 都要 转为 机器语言 才能在 计算机中执行 , 如 : 汇编语言 / C / C++ / Python / Kotlin / Java / JavaScript 等语言 ;

2、编译器 和 解释器

将 程序代码 转为 机器码 的 工具 , 称为 " 翻译器 " , 翻译器 翻译 代码 的方式有两种 : 编译 和 解释 ;

  • 编译器 :

    • 程序执行之前 就将 代码 编译成 机器码 ;
    • 一次性将所有代码 编译成 机器码 ;
    • 编译器 可以理解为 , 做饭时 先把所有的饭都做好 , 然后一次性端上桌 ;
  • 解释器 :

    • 在 程序执行过程中 , 解释一行代码 , 将其翻译成 机器码 , 然后执行 , 然后再解释下一行代码 ;
    • 每次将一行代码 翻译成 机器码 ;
    • 解释器 可以 理解为 涮火锅 , 一边涮 , 一边吃 ;

3、编译器 分析

编译型语言 在 程序执行 之前 , 需要 将 程序源代码 一次性 编译 成 机器码 , 并将其包装成 特定平台 所能识别 的 可执行性程序的格式 , 这个过程就是 编译过程 ;

这个特定平台指的是 Windows 或 Linux 操作系统 , x86 / arm / mips 不同的 CPU 架构 , 32 位 / 64 位 不同的内存寻址位数 , 如 : 我要编译一个在 x86 平台的 64 位 Windows 程序 , 这个程序只能在 CPU 是 Intel 并且 装有 64 位 Windows 程序 的电脑上运行 ;

这类程序只需编译一次 , 在之后运行时不需要再次编译 , 这类程序执行效率高 ;

编译型语言 与 特定平台相关 , 无法移植 到其他平台 , 如果要在 编译之后需要修改 , 需要整个模块重新编译 ;

编译器 在 程序执行之前 就将 代码 编译成 机器码 , 一次性将所有代码 编译成 机器码 ;

  • C 语言 的 编译器 是 GCC ;
  • C++ 语言 的 编译器 是 G++ ;

4、解释器 分析

解释型语言 不需要 预先 将 程序源代码 编译成 机器码 , 而是在运行时 逐行解释并执行源代码 , 解释型语言 只要有相应的 解释器 , 就可以在任何平台上运行源代码 , 因此解释型语言 的 移植性 很好 ;

解释器 是在 程序执行过程中 , 解释一行代码 , 将其翻译成 机器码 , 然后执行 , 然后再解释下一行代码 ;

以 JavaScript 程序为例 , JavaScript 引擎 就是 解释器 , 一次将一行 JavaScript 代码转为 机器码 , 然后在 浏览器 中执行 , 执行完毕后 , 再 解释 下一行 JavaScript 代码 ;

在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>