运营商和关键字是否相同?

时间:2011-04-22 08:49:56

标签: programming-languages operators keyword

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

3 个答案:

答案 0 :(得分:2)

关键字是保留的令牌,在给定的编程语言中具有特殊含义。 Operators是可以带一个或多个参数的关键字。它们通常与标准数学运算相关联,但例如new也被视为单个参数运算符。运算符通常用中缀表示法(left [operator] right)编写,并且可以嵌套(考虑到它们的precedence)。此外,许多语言允许运算符超载,但一般不一定是关键字。

答案 1 :(得分:0)

+:运算符

new:关键,但也是操作符

const:关键字但不是运营商


从广义上讲,“关键字”是指任何其他有效的标识符(除文字之外的一些内容),它们不能是一个,因为它是由语言保留的。 (标识符可以是变量名,类名,命名空间名等)关键字是关键单词,这就是全部。他们甚至可能 nothing ,例如Java的const关键字。

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

答案 2 :(得分:0)

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

http://msdn.microsoft.com/en-us/library/kewsb8ba(v=VS.100).aspx

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

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

  

关键字:只是一个标识符   它的末端有一个冒号,例如   anyIdentifierLikeThis:是{keyword}。   在Smalltalk中,只有关键字   特殊的,它形成一个   “关键字消息”。这是一个独特的   一种令牌(不同于   标识符或字符串)但它的   意味着作为个人令牌不是   特别。有些语言有   {keywords}喜欢BEGIN和END with   内在的特殊含义。 {Keyword} in   Smalltalk不是这种东西,   它完全是一种句法形式。

Ther只有在Smalltalk中保留的六个“关键字”:true,false,nil,self,super和thisContext。因此,并非所有关键字都必须使用该语言中的保留字。

参考:http://c2.com/cgi/wiki?SmalltalkTutorial

关于真与假:

在某些语言(如Java)中,这些是布尔文字。在c#中,这些都是运算符和文字。在这两种情况下,这些都不被视为关键字。在Smalltalk中,这些是关键字。真实地展示了事物从语言到语言的变化。

Are true and false keywords? True Operator / Literal in C#