Programming languages 运算符和关键字是否相同?

Programming languages 运算符和关键字是否相同?,programming-languages,operators,keyword,Programming Languages,Operators,Keyword,我想知道运算符或关键字是否相同?如果没有,区别是什么?+:操作员 new:一个键字,同时也是一个操作符 const:关键字,但不是运算符 广义上,“关键字”指的是任何其他有效的标识符(除了一些文字之类的东西),它们不能是一个,因为它是由语言保留的。(标识符可以是变量名、类名、命名空间名等)关键字就是关键字,仅此而已。它们甚至可能什么也不做,比如Java的const关键字 运算符是一种语言元素,它可以执行一些操作,如加法、括号、new等。。。它可能是一个词,也可能不是一个词。关键字是在您正在编程

我想知道运算符或关键字是否相同?如果没有,区别是什么?

+
:操作员

new
:一个键,同时也是一个操作符

const
:关键字,但不是运算符


广义上,“关键字”指的是任何其他有效的标识符(除了一些文字之类的东西),它们不能是一个,因为它是由语言保留的。(标识符可以是变量名、类名、命名空间名等)关键字就是关键字,仅此而已。它们甚至可能什么也不做,比如Java的
const
关键字

运算符是一种语言元素,它可以执行一些操作,如加法、括号、
new
等。。。它可能是一个词,也可能不是一个词。

关键字是在您正在编程的语言中具有特殊含义的“词”,其中一些词执行一些操作,因此也执行一些运算符。就像new关键字一样,它也是一个操作符

像new这样的运算符通常被视为“字母数字运算符符号”,而不是关键字。其他示例包括
sizeof
delete
throw
instanceof

我喜欢Smalltalk中定义和处理关键字的方式:

关键字:只是一个带有 结尾的冒号,例如。 anyIdentifierLikeThis:是一个{关键字}。 在Smalltalk中,关键字只是 特别的是,它形成了一个 “关键字消息”。这是一个独特的概念 令牌的种类(不同于 标识符或字符串),但其 意义作为一个单独的标记是不正确的 特别的。有些语言有 {关键字}如以开头和结尾 内在的特殊意义。中的{关键字} Smalltalk不是这样的东西, 严格来说,这是一种句法形式

Smalltalk中只保留了六个“关键字”:true、false、nil、self、super和thisContext。因此,并非所有关键字都是语言中的保留字

参考:

关于真假:

在某些语言(如Java)中,这些是布尔文本。在c#中,这些都是运算符和文字。在这两种情况下,这些都不被视为关键字。在Smalltalk中,这些是关键词。真正显示了语言之间的变化


关键字是保留的标记,在给定的编程语言中具有特殊意义。可以接受一个或多个参数的关键字。它们通常和标准的数学运算联系在一起,但例如,它们也被认为是单参数运算符。运算符通常使用中缀符号(
left[operator]right
)编写,并且可以嵌套(考虑到它们的属性)。此外,许多语言允许重载运算符,但通常不一定是关键字。

const不是运算符,而是关键字。哦,什么?!你改变了答案,但我仍然无法取消我的否决票。。。哈哈,如果你再次更改,请让我知道,这样我就可以做到:)添加更多:)删除否决票,或者如果你再次不同意我添加的内容,请保留它:)不,现在更好了。:)不过需要注意的是:
true
是一个布尔文本,而不是一个关键字。不是在smalltalk中。在c#中,运算符和文字都是true。你指的是哪种语言?我现在在看CSSI,你认为你编辑过吗?我投了反对票,因为new既是一个关键词,也是一个关键词operator@manojlds:啊,是的,我。。。我很快给出了答案,然后在一分钟后修复了细节,对不起。xDOperators仅在使用它的语言中使用中缀符号编写。关键字实际上可能没有任何意义,如Java的
const
:P@Ignacio你没有注意到“通常”部分吗?+1-你的回答很有道理。奇怪,编码一段时间,这样一个基本的问题可以让你思考!是的。我还注意到一元正数和负数、布尔数和位求反、以及
new
delete