首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 答疑:编译解释有何区别?Java 语言属于编译型编程语言还是解释编程语言

总结 前言 我们都知道开发语言整体分为两类,一类是编译型编程语言,一类是解释编程语言。那么你知道二者有何区别吗?编译解释又各自有何区分?...Java 语言属于编译型编程语言还是解释编程语言呢?...三、什么是解释(Interpreter) 解释是直接执行用编程语言编写的指令的程序。只有在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度不如编译后的程序运行的快。...语言既不属于编译型编程语言也不属于解释编程语言,因为它由 Java 编译编译为字节码文件,然后仍需要有 JVM 将字节码解释翻译为目标机器语言,先编译后解释。...总结 在本文中我们解释了什么是编译,什么是解释,并对二者进行了比较,从原理层面指出 Java 语言既不属于编译型编程语言也不属于解释型编译语言

67430

关于 ABAP 这门编程语言的编译解释

大家都知道ABAP是第四代高级语言。但我们有多少人能确定ABAP 报表是如何执行的?它有编译还是解释,还是两者兼有? 其实答案是:在某种程度上,它两者都有。...详细说明一下:在ABAP程序执行之前,ABAP编译必须将其翻译成一种中间语言。这种形式的程序,即以这种中间形式的程序被称为ABAP负载。然后ABAP虚拟机出现了。...ABAP虚拟机是ABAP负载的解释,也就是说,它可以执行ABAP负载。我们可以将整个场景与Java编译-解释过程相互关联。 在继续之前,我们需要了解什么是处理块。...如果已经编译过,则ABAP虚拟机可以立即开始执行处理块;否则,ABAP编译必须先将ABAP程序翻译成ABAP负载,然后再执行它。 这是对ABAP程序编译过程的一个概述。

13710
您找到你想要的搜索结果了吗?
是的
没有找到

Java 语言属于编译型编程语言还是属于解释编程语言

文章目录 前言 一、Java 与 Java 字节码 二、什么是编译(Compiler) 三、什么是解释(Interpreter) 总结 ---- 前言 我们都知道开发语言整体分为两类,一类是编译型语言...,一类是解释语言。...编译解释又有什么区别? ?...三、什么是解释(Interpreter) 解释是直接执行用编程语言编写的指令的程序。 只有在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度不如编译后的程序运行的快。...---- 总结 所以说,Java 语言既不属于编译型编程语言也不属于解释编程语言,因为它由 Java 编译编译为字节码文件,然后仍需要有 JVM 将字节码解释翻译为目标机器语言,先编译后解释

6.9K31

实现JavaScript语言解释(一)

前言 对于大多数前端开发者来说JavaScript可谓是我们最熟悉的编程语言了,它十分强大可是有些语言特性却十分难以理解,例如闭包和this绑定等概念往往会让初学者摸不着头脑。...因此为了更好地理解JavaScript的语言特性,我就自己动手实现了一个叫做Simple的JavaScript语言解释,这个解释十分简单,它基于TypeScript实现了JavaScript语法的子集...解释 解释顾名思义就是会对我们的代码进行解释执行,它和编译不一样,它不会对源代码进行转换(最起码不会输出中间文件),而是边解释边执行源代码的逻辑。...Simple解释 由于Simple不会对编写的JavaScript代码进行中间代码转换,它只会解释并且执行代码的逻辑,所以它是一个不折不扣的JavaScript语言解释。...综上所述,一个语言解释的软件架构大体是这样的: 上面其实也就是Simple的软件架构,接着让我们来看一下词法分析的具体实现。

1.2K30

实现JavaScript语言解释(二)

在语法解析阶段,如果Simple解释发现输入的Token字符串不能通过既定的语法规则来解析,就会抛出一个语法错误(Syntax Error),例如赋值语句没有右表达式的时候就会抛出Syntax Error...那么对于Simple解释来说,它的语法规则又是什么呢?...细心的你可能发现在上面的例子中所有语句都是以分号;结尾的,这是因为为了简化语法解析的流程,Simple解释强制要求每个表达式都要以分号结尾,这样我们才可以将重点放在掌握语言的实现原理而不是拘泥于JavaScript...上面我们使用了最直白的中文表达了Simple语言的一小部分语法规则,在实际工程里面我们肯定不能这么干,我们一般会使用巴克斯范式(BNF)或者扩展巴克斯范式(EBNF)来定义编程语言的语法规则。...DSL的全称是Domain-Specific Language,翻译过来就是领域特定语言,和JavaScrpt等通用编程语言(GPL - General-Purpose Language)最大的区别就是

54210

Python语言编译解释

一、解释语言Python Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言。 ?...编译型语言 先整体编译,再执行 运行速度快,任意改动需重新编译 可脱离编译环境运行 解释语言解释,边执行 运行速度慢 部分改动无需整体重新编译 不可脱离解释环境运行 编译型与解释语言列表...二、Python解释种类 CPython 官方版本的解释。这个解释是用C语言开发的,所以叫CPython。CPython是使用最广的Python解释。...我们通常说的、下载的、讨论的、使用的都是这个解释。 Ipython 基于CPython之上的一个交互式解释,在交互方式上有所增强,执行Python代码的功能和CPython是完全一样的。...PyPy 一个追求执行速度的Python解释。采用JIT技术,对Python代码进行动态编译(注意,不是解释),可以显著提高Python代码的执行速度。

1.5K20

python 编程 编译解释(入门)

我们可以容易看懂的语言 机器语言(二进制)例如:00100110。     ...计算机可以看懂的语言 在Python输出吃饭了吗,计算机无法听懂他只能识别0,1为了使其能交流 因此需要一个翻译的东西,这便诞生了编译和解析。...二.编辑解释介绍 1.编译/解释:高级语言与机器语言的翻译官 2.都是将翻译成机器可以执行的二进制码,只不过在运行原理和翻译过程有不同而已 三.编译解释区别 1.通俗解释                  ...代表语言是C语言。 ---- ②解释:边解释边执行 解释方式:运行速度慢,但部分改动不需要整体重新编译。不可脱离解释环境运行。代表语言是Python语言。...四.Python解释种类 1.CPython 官方版本解释。这个解释器用于C语言开发的,所有叫CPython。CPython 是使用最广的 Python解释

57020

用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(3)- 词法分析

用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(3)- 词法分析 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(1)- 目标和前言 用c语言手搓一个600...行的类c语言解释: 给编程初学者的解释教程(2)- 简介和设计 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(3)- 词法分析 用c语言手搓一个600行的类c语言解释:...给编程初学者的解释教程(4)- 语法分析1:EBNF和递归下降文法 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(5)- 语法分析2: tryC的语法分析实现 用c语言手搓一个...600行的类c语言解释: 给编程初学者的解释教程(6)- 语义分析:符号表和变量、函数 项目github地址及源码: https://github.com/yunwei37/tryC 这一篇讲讲在...但对于我们这样一个简单的解释来说,手工构造词法分析,并且完全不涉及到正则表达式的知识,理解起来也并不是很困难啦。

60530

计算机语言&Python解释

如C、C++、Delphi 解释类 执行方式类似于日常生活的"同声翻译",程序源代码一遍由操作系统自带的解释“翻译”成机器语言,一遍执行,所以效率相对较低,而且不能生产可独立执行的文件,因此程序不能脱离解释...,执行源码文件 2.解释把源代码边解释便声称机器码指令,边交给CPU执行。...不同的操作系统已经自带了解释 优点 1.跨平台性好,因为解释已经做好了对不同平台的交互处理,用户写的源代码不要考虑平台差异,一份代码,所有平台都能直接运行。...这个解释是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释。...缺点是毒素相对慢,以来解释 python解释种类 Cpython Ipython Jpython PyPy IronPython Python2.x与Python3.x

80510

用c语言手搓一个500+行的类c语言解释: 给编程初学者的解释教程(3)- 词法分析

词法分析能够对源码字符串做预处理,以减少语法分析的复杂程度。...,就得到这样一个标记流: {Sym, num}, {'=', assign}, {Num, 123.4} 词法分析的具体实现 由于词法分析对于各个语言基本都是大同小异,在其他地方也有很多用途,并且手工构造的话实际上是一个很枯燥又容易出错的活计...但对于我们这样一个简单的解释来说,手工构造词法分析,并且完全不涉及到正则表达式的知识,理解起来也并不是很困难啦。...循环的原因有以下几个: 处理错误: 如果碰到了一个我们不认识的字符,可以指出错误发生的位置,然后用while循环跳过当前错误,获取下一个token并继续编译; 跳过空白字符; 在我们实现的tryC语言中...对变量的处理需要以下几个步骤: 获取完整的变量名: 在符号表中查找变量: 如果在符号表中找到了变量,根据变量不同的类型,返回不同的token值; 如果没有找到,在符号表中间插入新的变量 关于符号表具体的内容,会独立出一篇文章来解释

1.3K00

用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(1)- 目标和前言

用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(1)- 目标和前言 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(1)- 目标和前言 用c语言手搓一个600...行的类c语言解释: 给编程初学者的解释教程(2)- 简介和设计 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(3)- 词法分析 用c语言手搓一个600行的类c语言解释:...给编程初学者的解释教程(4)- 语法分析1:EBNF和递归下降文法 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(5)- 语法分析2: tryC的语法分析实现 用c语言手搓一个...600行的类c语言解释: 给编程初学者的解释教程(6)- 语义分析:符号表和变量、函数 项目github地址及源码: https://github.com/yunwei37/tryC 一个小目标...写一个能执行代码的解释不仅是一件很有(zhuang)趣(bi)的事情,大概也可以作为刚学习完c语言的一个练手的小项目啦 不同于大部分常见的其他只支持四则运算的所谓”手工解释“教程,我们希望在代码结构尽量清晰的

42320

用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(2)- 简介和设计

用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(2)- 简介和设计 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(1)- 目标和前言 用c语言手搓一个600...行的类c语言解释: 给编程初学者的解释教程(2)- 简介和设计 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(3)- 词法分析 用c语言手搓一个600行的类c语言解释:...给编程初学者的解释教程(4)- 语法分析1:EBNF和递归下降文法 用c语言手搓一个600行的类c语言解释: 给编程初学者的解释教程(5)- 语法分析2: tryC的语法分析实现 用c语言手搓一个...600行的类c语言解释: 给编程初学者的解释教程(6)- 语义分析:符号表和变量、函数 项目github地址及源码: https://github.com/yunwei37/tryC 需要了解的一些基本概念...编译解释的区别不同 通常我们说的 “编译” 是一种计算机程序,负责把一种编程语言编写的源码转换成另外一种计算机代码,后者往往是以二进制的形式被称为目标代码(object code)。

49810

用c语言手搓一个500+行的类c语言解释: 给编程初学者的解释教程(2)- 简介和设计

项目github地址及源码: https://github.com/yunwei37/tryC 需要了解的一些基本概念 编译解释的区别不同 通常我们说的 “编译” 是一种计算机程序,负责把一种编程语言编写的源码转换成另外一种计算机代码...而解释是一种计算机程序,它直接执行由编程语言或脚本语言编写的代码,它并不会把源代码预编译成机器码,而是一行一行地分析源代码并且直接执行,相对编译而言可能效率较为低下,但实现也相对简单,并且容易在不同的机器上进行移植...解释与编译仅在代码生成阶段有区别,而在前三个阶段如词法分析、语法分析、语义分析基本是一样的。...(实际上完成一个可以跑起来的解释并不难,而且还是一件很有成就感的事,不是嘛?)...tryC编译的设计: 从上面可以看出,我们的tryC解释需要这三个模块: 词法分析 语法分析 语义分析和解释执行 需要这两个数据结构(用来在阶段之间保存或传递值): token,用来在词法分析和语法分析之间传递标记

1.6K00

用c语言手搓一个500+行的类c语言解释: 给编程初学者的解释教程(1)- 目标和前言

项目github地址及源码: https://github.com/yunwei37/tryC 一个小目标 这一系列教程希望面向初学者,使用c语言手工实现一个简单的解释来玩,不需要您掌握除了c语言以外的其他前置知识...写一个能执行代码的解释不仅是一件很有(zhuang)趣(bi)的事情,大概也可以作为刚学习完c语言的一个练手的小项目啦 不同于大部分常见的其他只支持四则运算的所谓”手工解释“教程,我们希望在代码结构尽量清晰的...,老师要求实现一个四则运算的计算,于是我想...要是能给计算加上函数和变量的定义就好啦...那大概能算一个简单的解释?...这里的部分是过了一年之后大二学编译原理的时候,把当时的代码用相对比较规范完善的方式重写了一遍,也因此希望把它整理成一个简单的教程,让c语言的初学者也可以愉快地搓一个解释玩;或者让学过编译原理的同学,能够把理论和实践联系起来...需要了解的前置知识 c语言的指针、函数指针、结构体等 递归的思想 心理准备 写一个600行的解释虽然不算什么大工程,但相关的原理还是稍微有些复杂的,可能需要多花一些时间理解程序的运行过程; 代码可能难以调试

1.4K00

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

所有的语言 都要 转为 机器语言 才能在 计算机中执行 , 如 : 汇编语言 / C / C++ / Python / Kotlin / Java / JavaScript 等语言 ; 2、编译 和...解释 将 程序代码 转为 机器码 的 工具 , 称为 " 翻译 " , 翻译 翻译 代码 的方式有两种 : 编译 和 解释 ; 编译 : 在 程序执行之前 就将 代码 编译成 机器码 ; 一次性将所有代码...; 每次将一行代码 翻译成 机器码 ; 解释 可以 理解为 涮火锅 , 一边涮 , 一边吃 ; 3、编译 分析 编译型语言 在 程序执行 之前 , 需要 将 程序源代码 一次性 编译 成 机器码...C 语言 的 编译 是 GCC ; C++ 语言 的 编译 是 G++ ; 4、解释 分析 解释语言 不需要 预先 将 程序源代码 编译成 机器码 , 而是在运行时 逐行解释并执行源代码 ,...解释语言 只要有相应的 解释 , 就可以在任何平台上运行源代码 , 因此解释语言 的 移植性 很好 ; 解释 是在 程序执行过程中 , 解释一行代码 , 将其翻译成 机器码 , 然后执行 , 然后再解释下一行代码

8410
领券