JAVA是编译型的语言

【侯俊霞全网最全收集--PLC1200/200SMART(88+93课时) 第1章】 第1章:零基础快速入门西门子S7-1200 阅读详情

(Ref: 《Programming Language Pragmatics 3rd Edition》 Page19)


如图, 从上至下分别是编译型语言,解释型语言,Java的执行模型。

看上去陷入了一个困境,Java到底是编译型语言呢,还是解释型语言呢?

一种朴素的判定方式:

如果翻译器部分较为简单,我们说这个语言是“解释的”,反之如果翻译器部分很复杂,我们就说这个语言是“编译的”。“”

事实上这两者之间的界限是模糊的,因为“简单”和“复杂”都具有主观性。“解释型”和“编译型”并不是一个清晰的描述。故强行将某种具有混合形式的语言划入两者之一是不当的。

但实践中肯定还是有进行分类的需求的,所以这里有一条启发性原则用以判断语言的类型:

如果翻译器对程序进行了彻底的分析而非某种机械的变换,而且生成的中间程序与源程序之间没有很强的相似性,我们就认为这个语言是编译的。彻底的分析和非平凡的变换,是编译方式的标志性特征。

因此,Java应当被认作一种编译型语言。


——《PLP》1.4 Compilation and Interpretation



作者:冯若航
链接:https://www.zhihu.com/question/19608553/answer/34834354
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
IEC 61850标准协议解读 3.MMS服务 摘要:本文系统介绍了MMS(制造报文规范)的基础知识及其在IEC61850中的应用。首先解析MMS的核心定义、通信流程(带确认/不带确认服务)、虚拟制造设备(VMD)概念及核心对象(域/有名变量等)。重点阐述IEC61850与MMS的映射关系,包括对象分层映射、服务转换规则及数据类型对应。深入分析ASN.1编解码机制,说明MMS PDU的分层结构与解码流程。最后通过典型报文案例(报告服务、控制服务、文件传输等)和通信初始化流程,展示MMS在智能变电站中的实际应用。全文揭示了MMS作为抽象应用层协议如何通过标 阅读详情

相关推荐

PX4算法解析:L1制导律

一、前沿 从今天开始,会陆续为大家解读开源飞控软件px4中使用到的各种算法,今天要讲述的是L1制导律,这是固定翼飞机进行路径跟踪的重要算法之一。这个算法是由MIT的研究人员提出,因为具有比较好的路径跟踪效果而得到广泛应用。在这之前,无人机在进行路径跟踪时一般采用基于侧偏距的PD控制器方法,至于为什么使用PD而不使用PID算法,那是因为位置环响应较慢,所以一般在外环采用PD算法,而在内环采用PID算...

weixin_44616080的博客 8253

Java是编译语言还是解释语言

Java是什么语言

编程菜鸟的博客 1936

【PADS-开发指南】

馒头破戒大师

sinat_23896491的博客 3215

3. Java是编译型语言还是解释型语言?

理解什么是编译型语言和解释型语言; Java是编译型语言还是解释型语言。

doing a 责任心 dataer 2951

从零构建:如何用MATLAB和SDR硬件搭建你的第一个OFDM卫星通信原型系统

本文详细介绍了如何利用MATLAB和SDR硬件从零构建OFDM卫星通信原型系统。通过核心组件选型、开发环境配置、OFDM算法实现到系统集成与优化的完整流程,帮助通信工程学生和DIY爱好者快速掌握软件无线电技术在卫星通信中的应用。特别推荐使用HackRF One和MATLAB工具箱实现高性价比的OFDM系统验证。

pz890123456的博客 378

如何实现MCGS与S7-200SMART PLC以太网多台通信控制?

第九步:(设备工具箱—设备管理—鼠标依次点击通用TCP/IP父设备—西门子_ Smart200到设备窗口里面去)数据类型:第0位(指PLC地址变量小数点后面的位数,例如我地址是M0.0,那么在数据类型应填写通道的第00位)第十步:(鼠标双击打开通用TCPIP父设备0--[通用TCP/IP父设备]进入通信配置)通道地址:0(指小数点前面起始字节的地址,例如我地址是M0.0,那么应在通道地填写0)。第七步:(选择通用TCP/IP父设备,点击新增,右侧选定设备就会自动添加进去。

u010670857的博客 6715

java是编译型语言还是解释性语言

编译型的语言包括:C、C++、Delphi、Pascal、Fortran 解释型的语言包括:Java、Basic、javascript 首先,初学者认为java需要编译,才能运行所以说java是编译型语言也没错, 但是由于java语言跨平台的特性,虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,所以说是解释型。 Java的虚拟机机制: java语言的编译–>解释—>执行过程 java的虚拟机 定义: 编

jinke2012的博客 9253

大模型的安全发展与安全治理

2022 年底,OpenAI 推出的 ChatGPT 在文本生成领域实现了重大突破,引领了大模型技术的发展方向,推动了各式各样的基座大模型及行业大模型的发展,并逐步向多模态和具身化方向迅速演进。显然,大模型展现出的强大能力为人工智能通用化揭开了序幕。然而,大模型技术的安全性也面临着生成内容的安全性、伦理道德等重大挑战。只有积极确保大模型的安全性,才能更有效地推动其持续发展,进而更好地应对大模型技术变革所带来的机遇与挑战。

qq_41432686的博客 2582

Java是编译型还是解释型语言

1.编译型语言和解释型语言 编译型语言 定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。 代表语言:C、C++、Pascal、

ThinkWon的博客 2万+

CAPL诊断功能实现

UDS(Unified Diagnostic Services)是一种用于汽车电子系统诊断的标准协议。它定义了一系列诊断服务,用于读取和写入车辆电子控制单元(ECU)中的数据,以及处理诊断故障码(DTC)。UDS协议通常运行在CAN总线上,使用ISO 15765-2(ISO-TP)协议进行数据传输。通过本文的学习,读者应该对CAPL诊断功能实现有了初步的了解,并能够编写复杂的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1516

SwiftUI 5 教程之 SwiftData使用入门(教程含源码)

对我来说,记住日期很难。是的,您可以设置该日期的提醒,但该提醒无法产生紧迫感。让我们创建一个应用程序,我们可以在其中添加将来发生的事件。如果我们可以在主应用程序上看到所有即将发生的活动,那就太好了。也许将它们添加到小部件上以营造紧迫感。对于任何事件,我们需要跟踪哪些事情?我们将在下一篇文章中添加更多属性,其中我们将讨论迁移。现在,这就是我们所需要的。开始吧。

iCloudEnd的博客 986

Java 是编译执行的语言,还是解释执行的语言

Java由编译器javac将Java文件编译为.class文件,再通过JVM虚拟机从.class文件中读一行解释执行一行解释为二进制代码。Java对于多种不同的操作系统有不同的JVM所以Java实现了真正意义上的跨平台

m0_51168740的博客 1510

CAPL学习之路-关键字

在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称 声明数据类型的关键字 可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct struct Data { .

jasonj333 6107

Java是解释型语言还是编译型语言

有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译无法执行。 也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。   对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行...

CSDnjava001的博客 1412

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java语言是编译型语言还是解释型语言?(Java程序执行过程)

Java语言是编译型语言还是解释型语言? 我们都知道,编程语言从程序执行过程分,分为编译型语言和解释性语言 什么是编译型语言和解释型语言? Java语言看似是编译型的,因为Java程序代码的确是需要经过编译的 还记得在cmd中用javac的命令吗? 没错,javac就是用来编译Java程序代码的(把.java源程序编译为.class文件) 不经过编译,.java文件运行不了! Java...

菜鸟的后花园 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java 是编译型还是解释型语言

1.编译型语言和解释型语言 编译型语言 定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。 总结:执行速度快、效率高;依靠编译器

jackcong_的博客 7782

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java是编译型语言还是解释型语言_什么是编译型语言和解释型语言?

首先什么是编译型语言和解释型语言?计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:1.编译2...

weixin_42352222的博客 1084

JAVA是解释型语言还是编译型语言

JAVA是解释型语言还是编译型语言 Under J2SE | 三月 10th, 2010 1 comment   JAVA是解释型语言还是编译型语言 概念: 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!   区别: 编译型语言,执行速度快、效率高;依赖编译

gundongdexueqiu的专栏 2834

Java到底是编译型语言还是解释型语言?

转载自网络 Java这个语言很神奇: 你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代...

weixin_34114823的博客 4294

解释型语言和编译型语言以及Java既是编译型又是解释型

解释型语言和编译型语言的认识以及两者的区别。Java既是编译型,又是解释型。

qq_36500738的博客 537

c和java可归类为什么语言,JAVA到底是解释型语言还是编译型语言

JAVA到底是解释型语言还是编译型语言以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!JAVA到底是解释型语言还是编译型语言是属于编译型语言。因为需要编译成位元组码以后才能在jvm上执行。JavaScript到底是解释型语言还是编译型语言编译型语言是把原始码先编译为机器码(也就是所谓的可执行程式,比如windows系统的...

weixin_39595537的博客 2145

java 是编译型_Java是解释型语言还是编译型语言

问题描述:在研究Python和Java之间的区别的时候,发现Java需要编译,而Python可以直接运行,我就在想Java它是编译型的语言吗。编译型和解释型语言的介绍编译型语言:编译型语言是源代码要经过编译器编译处理,生成目标机器码,这个机器码是一个二进制代码,是给看的机器看的,让它知道自己要干哪些活,而且这个机器码会保留,下次运行这段代码时无需重新编译。不过它是针对当前CPU的,这些目标代码只能...

weixin_36047753的博客 371

java 是解释型的语言还是编译型的语言

    今天听到同事在讨论java是哪种类型的语言(编译型、解释型),以前稍微有些接触,但是概念比较模糊,为了不至于让别人的思想左右自己,所以查了些资料,找到了很多热心网友给出的答案,终于有些明白。这里先给出编译型语言和解释型语言的定义。定义:    编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。    解释型语言:把做好的源程序翻译一句,然

howard的技术之路 1444
上一篇: Android 长LOG打印不全解决办法一
下一篇: Android6.0动态权限需要你做的事情
lizz821
博客等级 码龄12年 11粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值