在我参加的一个reactJS会议上,演讲者使用了一个术语转译器来进行一些代码转换/移植。当涉及到将语言代码转换为计算机系统/机器上的可运行形式时,我总是使用和听到术语编译器和解释器。转译器对我来说是新的。转译器与编译器或解释器有什么不同,为什么真的需要它?
当您使用JS预处理器(如CoffeeScript、TypeScript)将代码翻译为纯JavaScript时,它通常被称为“transpiling”。但这真的不是JS独有的东西。它适用于所有类型的编程语言。大部分情况下,它只是被称为编译。
Transpiling是一个特定的术语,用于将用一种语言编写的源代码转换为具有类似抽象级别的另一种语言。
根据https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling/
因此,在您的情况下:
另一个例子:
正如这篇Wiki文章中提到的,它是一种编译器,可以将源代码从一种编程语言转换为另一种编程语言。源代码可能是用一些不再使用的语言编写的,或者不支持最新的硬件/软件改进,或者是出于程序员的方便/偏爱。
VB6到VB. NET转换器可以被认为是一个Transpiler。我可能会认为COBOL到C#/C/Java工具是一个转译器。
编译器-将代码编译为较低级别的代码。
示例:
“开发者代码”
-Transpiler-将代码编译为相同级别的代码/抽象。
示例:
“开发者代码”
-解释器-解释代码,实际上与上面两个不同的类/联盟/上下文。
示例:<代码>php。exe
index.php
"-问题内容: 为什么我们说Java是一种编译和解释语言? (编译和解释)这样做有什么好处? 问题答案: Java在编译时被编译为中间的“字节码”。这与像C之类的语言在编译时被编译为机器语言相反。Java字节代码无法像编译的C代码那样直接在硬件上执行。相反,字节码必须在运行时由JVM(Java虚拟机)解释才能执行。像C这样的语言的主要缺点是,当编译该二进制文件时,该二进制文件将仅在一种特定的体系结构(
那么,让我看看我是否明白了这一点。 > 当我们说编译器和解释器之间的区别时,解释器将高级指令翻译成中间形式,然后执行。[我认为编译器也将高级指令翻译成中间形式,但此刻它生成目标代码而不是执行它,对吗?] 解释器一次读取一条指令或一行的源代码,将该行转换为机器代码并执行它。[解释器本身不会将代码转换为机器代码,它会使用ist自己的预编译函数评估指令(在解析之后)。例如,高级语言中的Add表达式将使用
翻译的结果是什么?它会把高级语言变成汇编语言还是机器语言,即二进制代码? 如果是后者,这是否意味着解释语言与介绍集没有关系? 一种语言只能有一个口译员?是因为解释器不做任何优化,所以我们不需要找到更好的解释器吗?
问题内容: 我正在学习Java,以下内容对我来说有些混乱。我了解的是: Java编译器 →Java编译器仅将程序转换为文件,这意味着将我们的源代码转换为字节码(这是使Java平台独立的虚拟机(JVM)的操作码的列表)。 Java Interpreter →仅“解释”代码,而 没有 将其转换为本地机器代码。它将一条字节码的每条指令作为一条命令一一执行并执行,而不管同一条指令出现多少次。这就是为什么它
我正在学习Java,下面的事情让我有点困惑。我的理解是: > Java编译器→Java编译器只是将程序转换为文件,这意味着将我们的源代码转换为字节码(它是虚拟机(JVM)的操作代码列表,使Java平台独立)。 Java解释器→只是“解释”代码,而不是将其转换为本机机器代码。它将字节码的每一条指令作为命令逐一执行并执行,而不管同一条指令发生多少次。这就是为什么它很慢,Java引入了JIT概念。 JI
问题内容: 我对JVM有一个非常基本的问题:它是编译器还是解释器? 如果它是解释器,那么JVM内部存在的JIT编译器怎么办? 如果两者都不是,那么JVM到底是什么?(我不希望将字节码转换为机器特定的代码等jVM的基本定义。) 问题答案: 首先,让我们对以下术语有一个清晰的认识 是Java编译器-将Java代码编译为 Bytecode 是Java虚拟机-运行/解释/将字节码转换为本 机代码 是即时编