编程语言是什么?

32

可能重复:
什么是计算机编程语言?

不,真的。

我一直在努力想出一个非常好的定义。这是我的看法:

编程语言是一种形式化语言,包含语法。语法规则用于形成语句。编程语言用于创建一组计算机可以理解的指令。一组语法语句称为程序。

我知道它读起来不太好,所以需要一些帮助。



这是维基百科 有关该主题的 第一段:

编程语言是一种人工语言,旨在表达计算机特别是计算机程序所能执行的计算。编程语言可用于创建控制计算机行为的程序、精确地表达算法或作为人类交流的一种方式。

我认为这是生活中每个人都知道它是什么,但它却难以定义的事情之一。

我是独自一人吗?你的想法呢?


20
我想应该设置为社区维基(Community Wiki)。 - Malfist
21
我的天啊,社区百科的极端主义者甚至不放假周末... - Tangiest
5
什么是程序?任何语言都能成为编程语言吗?什么是真相? - San Jacinto
3
这是一个自主托管的伪代码编译器: (1) 解析程序 (2) 生成机器码 - Amnon
2
它不是社区维基有什么问题吗?它不是主观的,而且它有一个明确的答案。我想你们只是不想让那个人获得一些声望... - RCIX
显示剩余10条评论
18个回答

0
编程语言是一种正式的人工语言,具有自己的语法。语法规则用于形成语句。编程语言用于创建一组计算机可以理解的指令。一组语法语句称为程序。这些语句从人类可读格式(在运行时或通过编译)被翻译成机器特定的格式。

1
一种语言总是有一种语法,因此您不需要特别表达它。维基百科的定义更加简洁和完整(请参见我的回答)。 - Juergen

0
编程语言是一种形式语言,其中包含了语法和语义的规则。这些规则描述了一种表达程序(一系列计算)的方式,以便将其转换为可以由机器执行的内容。

0
编程语言是一种语法,描述了哪些字符序列是有效的程序,并配合语义定义了当执行时有效程序应该使计算机做什么。

0

说实话,我会选择这个定义:

编程语言是一种语言, 允许对机器进行编程。

这是所有编程语言共同拥有的唯一特点。

有些是编译型的,有些是解释型的,有些遵循正式的语法规则,有些不遵循(例如rail...无法将其放入EBNF或其他语法中),有些易于阅读,有些则不易(brainfuck)...我确实同意,目前它们都是比较正式的,但这是由于技术问题造成的...除了理解真正的人类语言目前太困难之外,没有其他原因导致所有编程语言都是正式的(注意:我并不是说如果处理人类语言足够可行,就没有其他语言是正式的)...


0
  1. 一个玩笑式的回答:我可能无法定义它,但我知道当我看到它时。

  2. 如果一个人拥有一些可以通过记录在某些时间持久的介质中的信息来控制的机器,那么就必须有一些表达可以记录什么的规则,这组规则可以称为编程语言。

如果被控制的机器恰好是通用的(在图灵意义上),那么通常我们称之为计算机,但也可以对更简单的机器进行编程。我想到的是雅卡尔织布机或各种可控机床。


-2
编程语言:用于控制计算机的语言。

1
它们并不是“花哨”的,而是“正式的”——这有一个区别,并且有一个原因,它们听起来并不那么简单。 - Claudiu
@Claudiu:正式并不等于简单。 @Jim:请参见上文。 - Doug Knesek
为什么会有踩票呢...只是好奇。 - Doug Knesek
1
这不是一个描述性的定义。语言本身并不能控制计算机。 - dreamlax
严格来说,电气信号控制计算机...只是一堆用于控制这些电气信号的东西。这些东西被称为“编程语言”。 - Doug Knesek

-2

这是一种最接近人类语言的逻辑表达方式,也是最好的表达方式。


但它到底是什么,而不是你认为它是什么? - Juergen
2
你如何准确地定义“最好”?按照你的定义,只会有一种编程语言。 :) - badp
1
@badp 很好。这就是语言之争的原因。 - Satya

-2

编程语言是一组指令,用于生成特定的电子信号,以便硬件可以执行这些算术运算。

当我学习计算机体系结构和汇编语言时,我意识到它基本上是根据我们的计算机指令生成的电子信号,并触发特定的电路来执行算术运算,然后在每个周期完成一个指令。


2
为什么一定要使用电子信号?你同样可以构建一个机械/化学/光学等的计算机…… - back2dos
如果我们谈论今天的计算机,它们是电子设备,而不是机械设备。 - itsaboutcode
你正在定义计算机编程。一种编程语言可以在没有计算机甚至没有编译器的情况下存在。 - hasen
@itsaboutcode:为什么你要试图用我们当前使用的计算机来定义一个概念呢?如果有人建造了一台实验性的光学计算机,并在其上实现了Forth语言,那么Forth语言突然就不再是一种编程语言了吗?如果我们普遍转向其他计算基础,难道就没有编程语言了吗?我认为你混淆了概念和实现。 - David Thornley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接