"Token" 的确切定义是什么?

51

我在理解术语 “Token” 的真正含义上有些困难。

从软件开发角度讲,您能给出通用的定义吗?(在不同的上下文和语言中,它是否有不同的含义?)

谢谢!


1
你需要一般的定义还是针对.NET的定义? - BoltClock
如果它在 .Net 中有特定的含义,如果您能包括那个含义,我将不胜感激。谢谢! - pencilCake
7个回答

58

如果你在谷歌中搜索define:token,你会得到(除其他外)以下两个定义似乎适用:

  • 符号类型的单个实例;“单词‘错误’包含3个`r'的标记”
  • 作为某物的标志的东西

如果将这两者结合起来,你就会接近编程中通常所指的标记的含义; 代表某事的符号。相当模糊,是的,但它在许多不同的上下文中使用。

一个例子:你有一个身份验证系统,用户登录。当系统验证了用户后,为了避免每个请求都要重复此过程,创建一个代表用户已通过身份验证的标记。然后在随后的请求中使用此标记。在这种情况下,something 是用户已通过身份验证的事实,而标记则代表着这个事实。


如果我用“something”这个词代替“Token”,也不会有错。:) 很抱歉,我真的不明白重点是什么 :( - pencilCake
@Frederik:谢谢Frederik,好的例子。所以,在面向对象编程的语境下,它基本上代表一个“特定实例”,对吗? - pencilCake
@burak:再次强调,具体情况而定,但是可以这么说。 "特定实例"就是"某物" :) - Fredrik Mörk
很好的令牌定义。只是一个问题:为什么数字和数值应该被视为令牌?数字不足够吗? - user4710450
@Ehsan 我认为数字(如1或7)可以被视为令牌,您可以使用它们生成数字(如17)。根据上下文,1或7当然也可以被视为数字,由单个令牌组成。 - Fredrik Mörk

12

令牌包括:标识符、关键字、字面量、运算符和标点符号。但是,尽管空格和注释作为分隔符对令牌起到作用,我们不能将它们视为令牌。


6

在编译器中,词法分析器(或扫描器):读取输入流,并将源文本的字符融合成语言的标记。

标记:具有集体含义的字符序列。 形成标记的字符序列称为词元

以下示例可能有所帮助
考虑以下赋值语句
newvalue = oldvalue + rate * 60
词法分析器将生成以下标记。

标记       词元
标识符     newvalue
赋值操作符  =
标识符     oldvalue
加法操作符  +
标识符     rate
乘法操作符  *
数字       6

3

在软件开发领域,签名认证是指服务器为一段时间内发行的认证标识。


2

Token是编程语言中的单个元素,它们分为以下五类:

  • 保留字
  • 运算符
  • 标识符
  • 常量
  • 分隔符

1
Token可以被视为一种印章,就像在中世纪时代,代表国王、公爵、主教、教皇或其他任何人的信使穿越各个王国时需要被证明是真正的代表。他必须展示带有特定印章的信件,或者展示一枚像其他几枚一样刻有特殊图案的奖章或硬币,token就像这些物品之一。

0

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