深圳做的好的电子行业招聘网站衡阳网站排名

pingmian/2025/10/14 3:51:07/文章来源:
深圳做的好的电子行业招聘网站,衡阳网站排名,库存管理系统,做网站前台和后台是什么编译型语言与解释型语言 首先要说明#xff0c;编译型语言与解释型语言这种分类方法是不科学的#xff0c;或者说已经过时了#xff0c;但是这种称呼大抵还是能够让人明白我们将要讨论的是什么东西。 文中所列参考是笔者认为比较有帮助的一些扩展阅读内容。 首先贴一个很形…编译型语言与解释型语言 首先要说明编译型语言与解释型语言这种分类方法是不科学的或者说已经过时了但是这种称呼大抵还是能够让人明白我们将要讨论的是什么东西。 文中所列参考是笔者认为比较有帮助的一些扩展阅读内容。 首先贴一个很形象的比喻来自知乎孛尔只斤南丁 假设厂里来了两个新工人一个叫编译另一个叫解释。厂长程序员给他们安排了一项任务需求并发放了操作说明源代码。 编译这名工人的做法是先完整的看一遍操作说明遇到错别字或者不明白的地方就去问厂长直到操作说明最终成为一个没有错别字且他自己完全能够理解的东西。然后他把操作说明的内容理解消化编译并且变成记忆可执行程序。之后每次需要完成任务的时候就靠自己的理解和记忆去执行不再需要操作说明。 我们再看解释这个工人。他拿到操作说明二话不说直接上手读一条操作一步再读一条操作下一步如此重复。就算是操作说明中有错别字或者他看不懂的地方在没有读到那一条之前他是不知道的也不影响他进行前面的操作等真的读到错别字或者不能理解的条目再去问厂长。而且不管他执行这个任务执行了多少次每次都是需要看着操作说明一步一步执行。 那这两个工人谁好谁坏呢难说。 如果给他们安排的任务以后要重复很多次而且步骤繁多但是相对稳定不需要频繁调整那么编译工人的工作效率可能会更高一些。因为任务相对稳定不需要调整所以他只要第一次把不明白的地方跟厂长问清楚自己理解消化记住了以后的执行都是他自己内化理解的东西做起来很快。 如果任务步骤相对少呢编译工人其实也不会比解释工人高效出多少。甚至可能解释工人拿来就上手编译工人还没读完人家已经操作完了。又或者任务不需要重复执行如实验代码那么对着操作说明直接干就是了没必要理解消化记忆。再者任务可能需要灵活性每天需要根据厂长甚至是客户的要求改来改去解释工人可能更加出色。每次改动编译工人还要重新看一遍完整的操作说明当然了我们可以把操作说明分章节那他只会看更新的章节但是解释工人就不用这么麻烦反正他都是读一条操作一步你改不改动影响不大。 传统认知中的编译型、解释型、混合型 编译型 编译型需通过编译器compiler将源代码编译成机器码然后链接为可执行文件。这个过程对于在 Linux 下编译过代码的大家来说应该比较熟悉了这里以 gcc 的工具链为例 源代码(.c/.cpp) → 预处理(cpp) → 编译(cc1) → 汇编(as) → 链接(ld) → 可执行文件(.elf) 整个过程可参考从C源代码到可执行文件的四个过程预处理、编译、汇编、链接 编译把源代码编译成机器码编译的过程又可分为 源代码 → 词法分析 → 语法分析→ 语义分析 → 中间代码生成 → 优化 → 目标代码生成 → 目标代码 这就是大家熟悉的编译原理中学习过的的前中后端了。 链接把各个模块的机器码和依赖库串连起来生成可执行文件。链接也是有许多学问的又可分为静态链接和动态链接。可参考Linux下的ELF文件、链接、加载与库含大量图文解析及例程。 主流实现为编译型的语言有C、C、Object-C、swift 等。值得一提的是Java 很多时候也被分类为编译型这正是我们说所谓编译型语言的说法过时的原因我们会在后面详细讨论 Java。 解释型 解释性语言的程序不需要编译相比编译型语言省了道工序解释性语言在运行程序的时候才逐行翻译。代表有 Python、JavaScript、PHP 等。 混合型 混合型编译器将源码编译成中间码而不再是二进制机器码然后中间码需要被即时编译器翻译成目标平台的本地代码。待表有C#、Java。 编程语言及其实现 读者应该注意到上一小节我们的提法是编译型、解释型、混合型而不是编译型语言、解释型语言、混合型语言。 是这样的即使有所谓的编译型、解释型之分这种分类也是相对于语言的实现而言而非语言本身。语言的本身只是规定了源代码的语法至于怎样将源代码执行起来这应当称为是语言的实现。那么对于语言的实现我们将其可以分为编译型、解释型和混合型。 以下引自计算机语言分类 将编程语言分类为编译型语言、解释型语言被认为是不科学的因为很多语言既可以认为是解释型、也可以认为是编译型这种分类方式被指出是不科学的见于RednaxelaFX 在 虚拟机随谈一解释器树遍历解释器基于栈与基于寄存器大杂烩 中提到的我是倾向于避开把编程语言描述为“编译型”或者“解释性”的。 详细地下面以 Java 和 Python 为例子来解释这个问题。 Java 是这样从源码到被执行的大致地~: Java 源代码 - javac 将其转为字节码二进制码-虚拟机中执行。 Java 按这种分类方式难以分类的原因就如上所示首先编译其次在虚拟机中解释执行。为何说后者是解释因为传统上我们认为从字节码到对应平台的机器码需要不同平台上的 JVM 提供支持我们认为这个动作就是解释。 这样一来 Java 就难以按照这个分类方式进行分类了。实际上我还是倾向于将 Java 称之为编译型语言因为完全可以将 JVM 看做底层实现。这里粗粒度不宜过细因为本质上说机器码被 CPU 接收然后运行其中也涉及一段解释的过程。如此一来世上只有解释型语言。 Python 虽然被普遍认为一门解释型语言按理说应当不涉及编译过程。事实上Python 解释器会将源代码转换为字节码.pyc然后再由 Python 解释器来执行这些字节码。本质上Python 解释器不就是完成了编译器执行器这个模块的任务既然含有编译过程那么其被称为解释型语言就具有一定不合理性。 R 大所认为的语言一般只会定义其抽象语义而不会强制性要求采用某种实现方式。而编译、解释只是实现方式的一个步骤或者方式按这种分类是不合理的。 Python解释器与Java虚拟机 Python、Java对比的例子经常被用来说明这个问题。 Python 和 Java 的执行过程中都有字节码.py和.class的概念它们的字节码都是既可以编译执行也可以解释执行的这取决于后续处理这些字节码的 VM 的实现。 Python 的 VM 或者说 Runtime 有多种实现CPythonJPythonPyPyironpython等尤其是 PyPy 中是支持 JIT 即时编译的还有 ironpython 的机制几乎就和 .NET 平台上的其他语言一样了。这使得 Python 也很难被直接归类为所谓的 ”解释型语言“ 了。但是 Python 中字节码(.pyc)不是必须的而是可以直接由 Python解释器对源代码解释执行。可参考博客python解释器。Java 不同于 Python它是一定要先编译一步拿到字节码 (.class) 的这也是为什么 Java 常被分类为 “编译型语言”。但是在 JVM 拿到字节码之后Java 的 JVM 的实现就很多样了可以解释可以编译编译又可以分为 JIT 和 AOT。选择多多细节多多。因此Java 也可以被认为是混合型。可参考Java一次编译到处运行是如何实现的 和 JIT动态编译和AOT静态编译编译技术比较 以下参考自凭啥Java的运行环境称虚拟机Python的只能称解释器 看到Stackoverflow上有个问题在讨论Java和Python的对比其中就有人问答为啥Java的运行环境被称之为JVM而Python的只能叫做Interpreter。 这个问题估计想过的人不多先找维基百科看一下虚拟机的定义。 虚拟机的定义有2个一种是类似Vmware的系统虚拟机另一种是虚拟机称之为程序虚拟机诸如JVMCLR就是最常见到的虚拟机。 程序虚拟机也称作托管运行时环境运行这个虚拟机时就好比普通的OS中的一个进程。当这个进程启动时虚拟机启动当进程销毁时虚拟机销毁。使用虚拟机的目的就是提供一个和平台无关的编程环境。 JVM中的执行引擎只能处理编译后的Java字节码字节码处理引擎其实包含一个字节码解释器和一个JIT编译器和.net的CLR中JIT差别很大解释器逐条的执行字节码指令速度稍慢。JIT编译器则会将热点代码编译缓存起来因此执行速度加快。 解释器的概念比较简单它可以将代码翻译并运行不需要经过编译JVM中的解释器正式这样的JVM中解释的就是字节码。解释器运行程序的方法有3种 直接运行高级编程语言如Shell内置的解释器转换高级编程语言码到一些有效率的字节码Bytecode并运行这些字节码以解释器包含的编译器对高级语言编译并指示处理器运行编译后的程序例如JIT 其中Python的解释器就是属于第二种Python代码在首次运行时它会将Python代码编译成字节码如果可以的话它会将这个字节码保存到**.pyc文件**中这样下次启动的时候就不会再编译这些代码而是直接解释运行字节码。事实上这种机制正在模糊解释器和编译器之间的界限或者说是模糊了解释型语言和编译型语言的界限。 通过JVM和解释器的概念澄清似乎还是不明白为啥JVM就被称为虚拟机JVM中有运行的是字节码它可能直接被解释执行也可能被再次编译成目标语言Python中的解释器也会先预编译Python代码为字节码再解释执行。那么到底有啥区别 很多人参与了讨论分别从不同的角度去阐述区别。 有人认为虚拟机是和语言无关的JVM为例除了Java之外ScalaClojure甚至Python借助于Jython工具也可以运行在JVM上而没听说什么语言能有Python解释器解释执行除了Python。 也有人从语言的类型上Java为静态类型的语言而Python为动态语言。这使得Java字节码既可以被解释执行也可以被编译成机器指令再执行。而Python则复杂多了它虽然让程序员可以不去关注变量的类型但解释器不得不去推断数据类型这一定程度上影响性能。 还有观点认为解释器是一个历史遗留术语现代语言中虚拟机和解释器的分界已经很模糊甚至不存在。 事实上在《Learning Python》一书中作者把Python的解释器称为PVM。PVM是一个栈结构虚拟机这里虚拟机分为基于栈的和基于寄存器的它把字节码中的指令一条条执行过来就行。不用转换字节码。基于这个事实来讲可以认为解释器和虚拟机的区别正在越来越小已经是我中有你你中有我的地步。独立的分割来看可能还能区分这几步是解释器行为这几步是虚拟机的行为但是作为一个整体来看两者的区别确实没那么明显。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88067.shtml

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

相关文章

十堰微网站建设北京移动端网站

随着物联网(IoT)技术的快速发展,越来越多的企业开始将其生产设备与物联网系统连接起来,以实现更高效、更智能的生产方式。在这个过程中,工业网关扮演着至关重要的角色。 工业网关是一种专门用于连接工业生产设备与物联…

广州物流网站开发网页版whatsapp

1.导读 GPS定位精度高,且早已成为移动设备标配,但GPS也具有一些难以克服的缺陷,包括: 冷启动时间长。GPS启动时,需要进行搜星,锁定卫星信号,然后再进行位置技术,这个过程可能会达到…

apache建设多个网站centos 7.2 做网站

本文摘要:本文已解决 Python FileNotFoundError 的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。 😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领…

万网域名注册网站如何做好优化

项目场景: 在node項目中,使用electron做界面化開發碰到的一些問題: 前期準備 安裝node:建議安裝最新的長期支持版本,都使用新版本不用考慮版本兼容問題Node.js — 在任何地方运行 JavaScript配置代理服務&#xff1a…

大兴企业网站建设公司广州市增城区建设局网站是什么

前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比…

学校官方网站网页设计网站开发产品设计公司

String 对象可谓再熟悉不过了,与此相关的面试题经常会引出内存性能优化的问题,本篇主要以 new String("123") 创建了几个对象为例记录。 一、你能回答正确吗 String a "123"; 如上定义的为常量; String b a "456&…

合肥网站开发招聘免费搭建个人服务器

GDB 1. GDB调试器1.1 前言1.2 GDB编译程序1.3 启动GDB1.4 载入被调试程序1.5 查看源码1.6 运行程序1.7 断点设置1.7.1 通过行号设置断点1.7.2 通过函数名设置断点1.7.3 通过条件设置断点1.7.4 查看断点信息1.7.5 删除断点 1.8 单步调试1.9 2. GDB调试core文件2.1 设定core文件的…

建网站多少钱一个平台网页制作与设计src什么意思

题目 给定一个字符串s,s包括以空格分隔的若干个单词,请对s进行如下处理后输出: 1、单词内部调整:对每个单词字母重新按字典序排序 2、单词间顺序调整: 1)统计每个单词出现的次数,并按次数降序…

怎样做旅游摄影网站高并发 wordpress

ASP.NET Web API如何接受来自AngualrJS的QueryString呢?本篇体验两种方式。 第一种方式:http://localhost:49705/api/products?searchGDN 这种方式是QueryString原生的格式。 首先,把当前的域名和端口号放到一个自定义的module中去。 1 (fun…

系网站建设工作总结深圳短视频关键词搜索排名推广

首先,定义问题:在 Pip 中设置HTTP爬虫IP服务器,以便在网络上进行访问和下载。 亲身经验:我曾经遇到过类似问题,通过设置HTTP爬虫IP服务器成功解决了网络访问问题。 数据和引证:根据 pip 官方文档&#xff…

php论坛网站源码下载网站维护服务

正题 题目链接:https://www.luogu.com.cn/problem/CF280D 题目大意 一个长度为nnn的序列,mmm次操作 修改一个数询问一个区间中选出kkk段不交子段使得和最大 1≤n≤105,1≤m≤2105,1≤k≤201\leq n\leq 10^5,1\leq m\leq 2\times 10^5,1\leq k\leq 201≤n≤105,1≤…

柳州市诚信体系建设网站青岛 网站优化

1 自我介绍 2 快手实习 2.1 讲讲你写的curd启动器,做了哪些工作呢 答: 2.2 网上也有一些开源的curd代码生成器,你为什么需要自研呢(重要) 答: (1)这个必须得自研,因…

常州建设工程交易网站煎蛋wordpress二次开发

撰稿|行星 来源|贝多财经 9月5日,乐舱物流股份有限公司(下称“乐舱物流”)通过港交所上市聆讯,并披露了通过港交所聆讯后的资料集(即招股书),中信证券和农银国际为其联席保荐人。 成立于2004…

可以用自己电脑做网站服务器吗企业网站建设注意

在java项目中,你一定碰到过classpath,通常情况下,我们是用它来指定配置/资源文件的路径。在刚开始学习的时候,自己也糊里糊涂,但是现在,是时候弄清楚它到底是指什么了。 顾名思义,classpath就是…

网站一级页面二级页面怎么做瑞昌市建设局网站

搜狐视频怎么投屏 1、设置投屏前,要先把电视机和手机连接同一个无线网络,这样才能投屏成功。 2、设置后手机和电视的网络后,点击打开手机桌面上的搜狐视频。 3、打开搜狐视频后,在打开的软件里面 ,点击一个视频播放…

无为县城乡建设局网站wordpress博客页面修改

近期需要对webbrower设置代理,找到了如下方案: 1. 对修改注册表,设置全局代理 这种方法限制在一个进程内只能设置或取消代理,而且是全局代理,对于部分不需要代理对功能会产生影响 2. 通过函数InternetSetOption实现修改…

网站页面用什么软件做内蒙建设工程信息网站

在当今数字化和社交化的时代,社交媒体已成为人们生活中不可或缺的一部分。其中,TikTok作为一款备受欢迎的短视频应用,不仅改变了人们的娱乐方式,也对精神健康产生了深远的影响。 本文将深入探讨TikTok在压力时代对精神健康的作用…

检查网站的跳转路径是否清晰 哪里要优化做网站需要缴什么费用

office这个体系分为四个大教程 1、【document server文档服务器基础搭建】 2、【连接器(connector)或者jsApi调用操作office】-进阶 3、【document builder文档构造器使用】-进阶 4、【Conversion API(文档转化服务)】-进阶 如果需要连接器,可以查看:onl…

自动跳转到wap网站wordpress 饼状图

前一段时间要做一个音乐播放器,要实现在线下载歌曲功能,这里要用到服务器,我决定使用Tomcat。 1.下载tomcat http://tomcat.apache.org/ 推荐下载7.0 版本(8.0刚出来,据说还有些问题;6.0反正我没搭建好&a…

网站做优化甜点的网站建设规划书

Sqlzoo习题练习:More JOIN operations下面会涉及到更多连接的概念。数据库由三个表组成:movie , actor 和 casting以及三个表之间的关系。下面为More JOIN 习题内容:--#1/*List the films where the yr is 1962 [Show id, title]*/SELECT id,…