OCR计算机科学GCSE对编译器和口译员是错误的吗?

时间:2018-03-06 20:00:32

标签: compilation interpreted-language

我是目前正在攻读OCR计算机科学GCSE(J276)的中学生。我自学编程,并且最近对OCR的一篇标本(this one)中的一个问题的背景感到惊讶,因为它违背了我对编程的了解。

在问题5b中,有一个问题要求描述编译器和口译员之间的差异:

  

Harry可以使用编译器或解释器来翻译[他创建的]代码。

这让我很困惑,因为它似乎表明编写的代码可以被解释或编译以便运行,这将是奇怪的,因为我的理解是语言适合两个框中的一个,解释(python,javascript )或编译(c ++,java),而不是适合两者。

是否可以根据程序员的需要编译或解释单个编程语言,还是OCR的另一个案例是简化课程以使其更容易理解?

1 个答案:

答案 0 :(得分:2)

C是一种通常编译的语言,但是interpreted implementations exist

@delnan在this回答中说,

  

首先,解释/编译不是语言的属性,而是实现的属性。对于大多数语言而言,大多数(如果不是全部)实现都属于一个类别,因此可以保存一些单词,说语言也被解释/编译,但它仍然是一个重要的区别,因为它有助于理解,因为有很多语言两种类型的可用实现(主要在函数式语言领域,请参阅Haskell和ML)。此外,有C语言解释器和项目试图将Python的一个子集编译为C或C ++代码(以及随后的机器代码)。

实际上,看起来你的课程设计师在理论上说了一些真实的东西,但在实践中往往会受到更多限制。这遍及整个编程,实际上是整个世界。你能为Commodore 64编写一个JavaScript编译器吗?当然,C64实现了一个完整的通用计算机系统,JavaScript是Turing Complete。只是因为某些事情是可能的并不意味着很多人实际上它,或者它简单