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

news2024/9/25 21:18:22

文章目录

  • 一、 解释型语言 和 编译型语言
    • 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://www.coloradmin.cn/o/1517440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【django framework】ModelSerializer+GenericAPIView,如何获取HTTP请求头中的信息(远程IP、UA等)

【django framework】ModelSerializerGenericAPIView,如何获取HTTP请求头中的信息(远程IP、UA等) 某些时候,我们不得不获取调用当前接口的客户端IP、UA等信息,如果是第一次用Django Restframework,可能会有点懵逼,那么…

【分布式websocket】群聊中的各种难点以及解决推拉结合【第16期】

前言 群聊中未读消息如何设计,以及是推消息还是拉去消息如何选择是需要讨论的。推送消息是推送全量消息还是推送信号消息让客户端再去拉取。其中方案如何选型会比较纠结。 首先基本的推拉结合思路是在线用户推送消息。用户离线的话上线去拉取消息。这是简单的推拉结…

Nginx、LVS、HAProxy工作原理和负载均衡架构

当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是 Web 应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。 在实际应用…

Camtasia Studio 编辑好的视频如何生成MP4

Camtasia Studio 是一款功能强大的屏幕录像和视频编辑软件,由 TechSmith 公司开发。它可以帮助用户轻松地录制屏幕和音频、添加注释和特效、剪辑和编辑视频,并导出高质量的视频文件。作为一款非常流行的视频制作工具,Camtasia Studio 在教育、…

论文阅读-federated unlearning via class-discriminative pruning

论文阅读-federated unlearning via class-discriminative pruning FUCP 通过类别区分性剪枝进行联邦遗忘 综述中描述:属于面向全局模型中的局部参数调整 利用卷积层的结构特定进行联邦忘却学习,wang等人提出了针对图像分类任务的联邦忘却学习算法FUCP&…

Oracle with as用法

一、简介 with…as关键字,是以‘with’关键字开头的sql语句,在实际工作中,我们经常会遇到同一个查询sql会同时查询多个相同的结果集,即sql一模一样,这时候我们可以将这些相同的sql抽取出来,使用with…as定…

ETH共识升级之路

简介 根据我们之前的介绍,了解到ETH网络的共识方式,已经从 PoW 切换到了 PoS,今天我们就回顾下升级之路,以及升级带来的影响 最早的共识机制 PoW 以太坊创建之初采用了类似比特币的工作量证明机制,即矿工通过计算哈希函…

【排序算法】-- 深入理解桶排序算法

概述 在计算机科学中,排序算法是一种对数据进行有序排列的重要技术。桶排序(Bucket Sort)是一种常见的排序算法,它通过将数据分到有限数量的桶中,并对每个桶中的数据分别排序,最后按照顺序将所有桶中的数据…

PBKDF2算法:保障密码安全的利器

title: PBKDF2算法:保障密码安全的利器 date: 2024/3/14 16:40:05 updated: 2024/3/14 16:40:05 tags: PBKDF2算法密码安全性迭代盐值密钥 PBKDF2算法起源: PBKDF2(Password-Based Key Derivation Function 2)算法是一种基于密码…

远程办公、企业内网服务器的Code-Server上如何配置使用CodeGeeX插件

很多小伙伴都会在工作中使用code-server,比如说远程办公,当你需要在家访问你的工作环境,亦或者是你们公司的Docker是放入服务器中。code-server 无疑是最好的选择,它可以让你通过互联网安全地连接到远程服务器上的开发环境并且使用…

import gdal 报错

1.下载gdal https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 2.安装正确版本 (1)查看python版本 python -v我的版本Python 3.7.9 建议下载 GDAL-3.4.2-cp37-cp37m-win_amd64.whl (2)放到Scripts文件夹下 执行 pip install GD…

【mask】根据bbox提示同一张图片生成多个矩形框掩码

前提:使用labelimg得到bbox 1.代码 import cv2 import numpy as np# 读取图片 image cv2.imread("D:\Desktop\mult_test\images\SL03509990_1694761223500.jpg")# 假设我们有多个目标的ROI(感兴趣区域) rois [(565,635,1006,85…

1.绪论

目录 1.1 Web原理基础 1.1.1 Internet与万维网 1.1.2 Web架构 1.2 Web前端技术基础 1.2.1 HTML技术 1.2.2 CSS技术 1.2.3 JavaScript技术 1.3 Web前端新技术 1.3.1 HTML5技术 1.3.2 CSS3技术 1.3.3 jQuery技术 1.4 Web开发工具 1.1 Web原理基础 1.1.1 Internet与万…

浅谈路由器基本结构与工作原理

目录 一、结构 1.1 输入端口 1.2 交换结构 1.3 输出端口 1.4 路由选择处理器 二、输入端口处理和基于目的地转发 三、交换 四、输出端口处理 五、何时出现排队 5.1 输入排队 5.2 输出排队 一、结构 下图是一个通用路由器体系结构的总体试图视图,其主要由…

mysql中动态行转列

场景:不确定转换完有多少列且转换完以后要存入临时表以供其他查询使用。 原始数据如下: 一张生产卡号对应多种添加剂,有多少种添加剂就有多少行数据 转换后数据如下: 一张生产卡号对应多种添加剂,有多少种添加剂就有…

2023版IDEA永久破解教程带patch.exe破解程序

2023版IDEA永久破解教程带patch.exe破解程序 第零步:百度云盘获取程序第一步:关闭电脑的病毒和危险防护(目的是避免电脑自动清除破解程序)1.找到电脑的 病毒和威胁防护2.蓝色按钮表示防护处于开启状态3.关闭成功会展示“实时保护已…

聊聊vue的nextTick方法

前言 nextTick是面试常考的vue中的一个重要知识点,但是很多小伙伴常常无法真正的理解nextTick的执行机制,并且背后包含的许多vue的重要知识。本文会把nextTick聊的非常细,让大家彻底搞懂它。 正文 那么在nextTick正式登场之前呢&#xff0…

深度解析Elasticsearch索引数据量过大的优化与部署策略

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 1. 分片和副本策略 1.1分片策略 1.1.1 数据量 1.1.…

Gitee 服务器

Git 服务器集成 1. 创建仓库 2. 远程仓库简易操作指令 # Git 全局设置,修改成自己的信息 git config --global user.name "Muko" git config --global user.email "txk0x7d2163.com" # 创建 git 仓库,基本操作指令和其他远程仓库一…

边缘计算与物联网的核心 —— 低功耗芯片

一、低功耗芯片 在边缘计算与物联网(IoT)中,低功耗芯片扮演了至关重要的角色,主要体现在以下几个方面: 延长设备寿命:物联网设备通常需要部署在难以更换电池或不方便进行频繁维护的环境中,比如…