Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 什么是编程语言?_Programming Languages_Theory_Wikipedia - Fatal编程技术网

Programming languages 什么是编程语言?

Programming languages 什么是编程语言?,programming-languages,theory,wikipedia,Programming Languages,Theory,Wikipedia,维基百科说: 编程语言是一种机器可读的人工语言,设计用于表示可由机器(特别是计算机)执行的计算。编程语言可以用来创建指定机器行为的程序,精确地表达算法,或者作为人类交流的一种模式 但这是真的吗?今天早上我在淋浴时突然想到,编程语言可能只是一组约定,人类和适当安排的编译器都可以解释。如果是这样的话,那么编程语言的这个定义不是有误导性吗?如果不是这样,那么编译器和它编译的语言有什么区别 谢谢 z、 我看不出你所问的有什么不同 今天早上我在淋浴时突然想到,编程语言可能只是一组约定,人类和适当安排的编译

维基百科说:

编程语言是一种机器可读的人工语言,设计用于表示可由机器(特别是计算机)执行的计算。编程语言可以用来创建指定机器行为的程序,精确地表达算法,或者作为人类交流的一种模式

但这是真的吗?今天早上我在淋浴时突然想到,编程语言可能只是一组约定,人类和适当安排的编译器都可以解释。如果是这样的话,那么编程语言的这个定义不是有误导性吗?如果不是这样,那么编译器和它编译的语言有什么区别

谢谢


z、 我看不出你所问的有什么不同

今天早上我在淋浴时突然想到,编程语言可能只是一组约定,人类和适当安排的编译器都可以解释

。。。还有维基百科的定义


关键是编程语言只是“一种机器可读的人工语言”。

编程语言正是这组约定,但我不明白为什么这会让维基百科条目产生误导,真的。如果它让你感觉更好,你可以编辑它,阅读如下内容:

编程语言是一种机器可读的人工语言,设计用于表示可由机器(特别是计算机)执行的计算。编程语言可以用来定义指定机器行为的程序,精确地表达算法,或者作为人类交流的一种模式


编译器确实是一种有效的语言规范,可以简化为机器代码。然而,由于通常很难通过阅读编译器的源代码来理解一种语言,人们通常会根据编译器实现的抽象处理模型来考虑编程语言。当我们提到编程语言时,这个抽象模型就是这个意思


也就是说,确实有很多语言(您好,PHP!),其中编译器是现有语言的唯一规范。这些语言往往会在修复或引入编译器错误时发生不可预测的变化。

编程语言是一个抽象层,有助于使程序员不必向计算机发送电信号。语言的创造者们已经做了所有艰苦的工作来创造一种结构(语言)或标准(语法、变位等),然后可以由编译器用计算机理解的术语来解释。

我理解你所说的,你是对的。将编程语言描述为“设计用于表示可由机器执行的计算的机器可读人工语言”是不必要的特定语言。编程语言可以更广泛地概括为任务的既定描述(或“一组约定”),允许一个实体控制另一个实体的行为。我们传统上认为的编程语言只是机器代码和程序员之间的抽象层,是专门为电子计算机设计的


编程语言并不局限于传统的计算机(参见),甚至不一定局限于计算设备。例如,当我对我的狗的行为感到满意时,它会得到一次款待。当我不高兴时,他什么也得不到。随着时间的推移,狗学习了treat/no treat编程,我可以使用treats来控制它的行为(在一定程度上)。

所有编程语言实际上只不过是特定于域的机器代码语言或处理实体的寄存器和内存

这可能是对编程语言的真正解释:

第一步:想想一种语言及其语法,这是一套使用该语言做出语法上有效的语句的规则。例如,一种称为GRID的语言将tiles{0,1}作为其字母表和语法规则,以确保每个GRID语句具有相同的长度和高度

步骤2(程序定义):到目前为止,网格是无用的。我敢把网格的任何有效声明都看作是数据。我们需要在网格中添加其他内容:后续函数。所以网格={语法,字母表,后继函数}。为了说明这一点,让我们使用“生活游戏”的规则作为后续功能

第三步:生命的游戏实际上是图灵完成的,所以GRID={Grammar,alphabet,successiver function=GOL}可以执行任何可计算的计算

编程语言只不过是一种具有后续函数的语言。对语言(程序)的有效语句求值的环境只执行后续函数。例如,变量是其后续函数=(保持不变)的对象


计算机只是速度非常快的环境;)

维基百科的定义可能已经断章取义了。首先,只有用机器代码编写的程序才是机器可读的。否则,你需要编译器将C++、java或者汇编代码转换成机器代码,这样计算机就可以执行你的指令。除非您包含仅供人类阅读的注释,或者除非您严格讨论程序领域内的某个主题,否则编程不足以进行人类交流。

编译器也可能存在错误或故意遗漏和更改;不能保证任何编译器实际上是一种语言的100%忠实表示(假设语言设计者已经在别处创建了一个正式规范)。但是,它是它实现的语言的100%忠实表示,这可能并不等同于程序中的语言