当前位置:首页 » 《资源分享》 » 正文

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

19 人参与  2024年04月09日 17:36  分类 : 《资源分享》  评论

点击全文阅读


文章目录

一、 解释型语言 和 编译型语言1、计算机程序本质2、编译器 和 解释器3、编译器 分析4、解释器 分析





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



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 代码 ;

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/92947.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1