您能否确定一种编程语言是仅通过其语法进行编译还是解释?

问题描述 投票:0回答:1

例如,有人可以仅通过查看X的语法就能知道X编程语言是经过编译而不是解释。

也许在编译和解释的编程语言中有一个共同的主题,而每个主题都是唯一的?

syntax programming-languages computer-science
1个回答
1
投票

没有为了进行比较,您能否仅从烹饪的原料中分辨出是用刀叉还是用裸手就餐?

[您可能会做出一些有根据的猜测-例如,如果配料中包含面条,则可能不会裸手食用。同样,如果该语言的语法在每个变量和函数签名上都包含显式类型声明,则可以在程序运行之前的“编译时”进行某种形式的静态检查。

但是基本事实是,如果您不介意凌乱,没有什么可以阻止您徒手吃面条,同样,也不能阻止您编写执行所有检查的静态类型语言的实现在运行时。为了娱乐,我曾经为Java的一个准系统子集编写了一个遍历树的解释器,正是这样做的。]

因此,问题在于语法是一种编程语言的属性,但是“编译”与“解释”是不是

编程语言的属性;它是编程语言实现的属性。如果有一个编译器和一个解释器,则可以用刀叉和裸手吃同一顿饭,并且可以编译和解释相同的语言。 Java字节码是一个很好的例子。它可以由JIT compiler解释或在运行时编译为本地代码。
© www.soinside.com 2019 - 2024. All rights reserved.