Programming languages 一种编程语言怎么可能是;实施了;?

Programming languages 一种编程语言怎么可能是;实施了;?,programming-languages,Programming Languages,也许这只是一个小小的误解,但是如何实现编程语言呢 我说的不是如何实现我自己的编程语言,而是“实现”这个词? 我的意思是,你可以实现一个编译器或解释器,但是一种编程语言 如果我读到“C++是用C实现的”或“Python是用C实现的”,这意味着什么 我认为语言更像是一个协议,它规定了人们对事物的想法应该如何实现。例如,如果他想显示一个messagebox,他可以说这个命令是ShowMessageBox(string),并实现一个编译器,该编译器将把它转换成在计算机上工作的东西(除了他想象的选定编程范

也许这只是一个小小的误解,但是如何实现编程语言呢

我说的不是如何实现我自己的编程语言,而是“实现”这个词? 我的意思是,你可以实现一个编译器或解释器,但是一种编程语言

如果我读到“C++是用C实现的”或“Python是用C实现的”,这意味着什么

我认为语言更像是一个协议,它规定了人们对事物的想法应该如何实现。例如,如果他想显示一个messagebox,他可以说这个命令是ShowMessageBox(string),并实现一个编译器,该编译器将把它转换成在计算机上工作的东西(除了他想象的选定编程范例)

我认为这个问题引出了一个问题“在现实中什么是编程语言”?一个编译器,一个解释器,或者仅仅是一个文档化的语言标准,关于如何在一种语言中实现事情

[编辑]

答:语言永远不会实现,只有编译器/解释器等。就是这么简单。

“C++是用C实现的”。我理解为“C++编译器是用C语言编写的”。很简单,没有太多的哲理


一般来说,C++编译器可以用任何语言编写,包括C++本身(除了第一个编译器版本)。它的解释器或编译器就是这个标准的一个实现。

要构建一种新的语言,您不必使用低级机器代码(例如汇编代码)。因此,使用另一种语言来实现您的目标(在这里创建一种新语言)是完全正常的。所以,当我们说:Python是用C实现的,这仅仅意味着C是用来创建这种语言的。例如,C可以在许多不同的体系结构上编译,因此程序员不必处理不同类型的计算机(便携式)

语言只是一种向计算机表达自己的方式。今天,它可以通过各种方式实现。但是,当您使用与该语言相同的语法并创建自己的框架时,它被称为库或框架。编程语言只是编写程序的符号。如果符号发生变化,您将使用不同的语言。就像法语或西班牙语来自拉丁语一样。(法语采用拉丁语;)

为什么有这么多不同的语言?因为语言的目标是解决复杂的问题。因此,根据您想要完成的任务,选择合适的语言可能是一个重要的决定。

直接答案: 在您所讨论的上下文中,实现只意味着编写,而语言实际上意味着编译器。 原来的C++编译器是我在C.写的,它没有什么东西(除了知识和时间)阻止你用另一种语言编写C++编译器。p> 实现是使软件工作的代码。我们经常谈论函数的实现,如:“函数尚未实现。” 如 void foo()
{
//功能尚未实现
抛出();
}

这通常发生在程序的设计阶段,因为调用需要在那里才能编写/调试/概念测试调用代码,但我们还没有来得及实现(编写代码以编写函数)

“Python是用C实现的”意味着至少有一个Python编译器(在本例中是最常用的一个)Python的开发人员做出了慎重的决定,不使用C++。作为一个声明,它是不完整的,因为Python也在Java、C#和Python中实现

<> P>主要的关联是它可以让你了解一些系统,你可以将语言移植到上面:C编译器所针对的任何东西都应该(至少在理论上)能够运行Python的C实现,但是如果他们选择使用C++,那么会有一个更小的系统可以运行它。 目前,在C++中通常不使用P> C++:通常都是用C++实现的。用同一种语言(或该语言的子集)实现语言是很常见的,因为这意味着您不再依赖于目标可用的其他无关语言。要引导到一个新系统,您需要从其他系统交叉编译


如果您为一个新平台编译gcc,构建过程涉及使用任何可用的编译器(可能是旧的gcc)编译源代码一次,然后使用新编译的编译器编译第二次,然后使用第二次编译的输出编译第三次。如果第二个和第三个版本不相同,则会出现生成错误。如果它们是相同的,那么你就有了一个很好的迹象表明它编译正确。

这里有一个非常学术的答案(来自一位长期的学者)。 首先,我将重新提出这个问题:

实现一种编程语言意味着什么

我将从“什么是编程语言”开始:


  • 编程语言是一种形式语言(我们可以通过算法规则精确描述的一组语句),因此语言中的句子具有计算意义。有多种方法可以赋予计算的意义;其中两种最流行的方法是,计算代表函数(从值到值,或从机器状态到机器状态),计算代表进行“状态转换”并与外部世界交互的机器

  • 当提供了一种方法来读取话语并执行计算,即计算函数或执行行为时,就实现了一种语言。手段是实施

  • 典型的实现包括

    • 直连