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

文章目录

  • 一、 解释型语言 和 编译型语言
    • 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.hqwc.cn/news/538968.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Milvus向量数据库检索

官方文档:https://milvus.io/docs/search.md   本节介绍如何使用 Milvus 搜索实体。   Milvus 中的向量相似度搜索会计算查询向量与具有指定相似度度量的集合中的向量之间的距离,并返回最相似的结果。您可以通过指定过滤标量字段或主键字段的布尔表达…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Web)上篇

提供具有网页显示能力的Web组件,ohos.web.webview提供web控制能力。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。示例效果请以真机运行为准,当前IDE预览器不支持。 需要权…

【动态规划】代码随想录算法训练营第五十三天 |1143.最长公共子序列, 1035.不相交的线 ,53. 最大子序和 动态规划 (待补充)

1143.最长公共子序列 1、题目链接:. - 力扣(LeetCode) 2、文章讲解:代码随想录 3、题目: 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个…

基于Python的中医药知识问答系统设计与实现

[简介] 这篇文章主要介绍了基于Python的中医药知识问答系统的设计与实现。该系统利用Python编程语言,结合中医药领域的知识和技术,实现了一个功能强大的问答系统。文章首先介绍了中医药知识的特点和传统问答系统的局限性,然后提出了设计思路…

阿里通义灵码全面公测,来看看它的水平怎么样?

作者:颖欣 人工智能作为新一轮的技术革命,已经开始渗透到软件开发领域,改变着传统的编码模式。如何利用 AI 技术提升软件开发的效率和质量,成为各家研究的重点。去年 10 月阿里云正式发布的通义灵码 - 智能编码助手,如…

新生宿舍管理系统|基于springboot框架+ Mysql+Java+B/S架构的新生宿舍管理系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 学生功能模块 管理员功能 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究目的 开发环境 项目部…

【Vue2】slot 插槽全家桶

插槽-默认插槽 插槽的基本语法 组件内需要定制的结构部分&#xff0c;改用<slot></slot>占位使用组件时, <MyDialog></MyDialog>标签内部, 传入结构替换slot给插槽传入内容时&#xff0c;可以传入纯文本、html标签、组件 插槽-默认值 封装组件时&am…

在dpvs上实现ICMP的源进源出

目录 1. 缘起2. 源码分析3. 让ICMP也走源进源出1. 缘起 在网络通信中,当一个请求报文从源主机到达目标主机,并经过中间路由器或交换机进行转发时,请求报文进入主机A的路径和响应报文离开主机A的路径可能不同。这种情况下,就会出现所谓的三角路径问题。如下图: 具体来说,…

心理核算的原则和依据

不论你的收入来源是工资、赌博所得、六合彩中奖或者其他&#xff0c;你都应该将增加的收入花在同样的物品上。在这个意义上&#xff0c;钱是无差异的。

uniapp运行钉钉小程序

因项目原因&#xff0c;公司需要在钉钉里面开发小程序。之前用uniapp开发过app&#xff0c;H5&#xff0c;小程序。还真没尝试过钉钉小程序&#xff0c;今天就简单的记录下uniapp运行钉钉小程序中的过程。 在项目目录新建package.json文件&#xff0c;在文件中添加如下代码&am…

yolov5模型压缩-PAGCP

参考论文:Performance-aware Approximation of Global Channel Pruning for Multitask CNNs(https://arxiv.org/pdf/2303.11923.pdf) 基本原理:研究不同卷积核之间的联合重要性来实现全局剪枝策略 模型压缩效果 在yolov5上进行剪枝训练,流程如下: 1、按照yolo正常训练 2、…

HTTPS基础

目录 HTTPS简介 HTTP与HTTPS的区别 CA证书 案例 服务器生成私钥与证书 查看证书和私钥存放路径 Cockpit(图像化服务管理工具) HTTPS简介 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容&#xff0c;不提供任何方式的数据加密&…