Re: [问题] token在这个上下文中所代表的意思

楼主: zzss2003 (brotherD)   2017-10-24 09:31:16
※ 引述《zzss2003 (brotherD)》之铭言:
: 标题: [问题] token在这个上下文中所代表的意思
: 时间: Mon Oct 23 18:12:30 2017
:
: → Hazukashiine: 在讲 token 的时候 我们一般不会说它具有语意 10/23 21:26
: → Hazukashiine: 因为程式码是一个连续的位元流 没有实体的切割 10/23 21:27
: → Hazukashiine: 所以我们要定义一组规则去把程式码切断成数个单元 10/23 21:28
: → Hazukashiine: 这个过程叫做 tokenization 来提供语法分析器调用 10/23 21:29
: → Hazukashiine: 一但语法分析器建立出语法树后 程式码变有了意义 10/23 21:30
: → MOONRAKER: token就如上述 程式码是一个大字串 把这个大字串依照 10/24 03:18
: → MOONRAKER: 规则切成小段 就是token 10/24 03:19
: → MOONRAKER: 考虑意义 你可以称它为“单字” 反正电脑语言的WORD是 10/24 03:19
: → MOONRAKER: 别的意思不会混淆 而token是合乎语法的基本片段 10/24 03:20
: → MOONRAKER: (syntactic element) 称为“单字”也并无问题 10/24 03:21
: → MOONRAKER: 叫“字汇”或更模糊的“片段”也行 “字串”也勉强 10/24 03:31
: → MOONRAKER: 类似很难搞的词还有"handle" 那比token还头大 10/24 03:32
经过两位大大的解释,洨弟总算是有点概念了。依照此规范所定义的token:
A token is the minimal lexical element of the language in translation phases
7 and 8.
我的理解:对机器来说程式码只是一堆0跟1,如果我们用一套规则去切割0跟1所得到的最小
单位组,就是token。
比如,我今天要用符合keyword的条件去定义token,那所切割出来的就是归类于keyword
的token。这也是为什么token会有分类的原因。
有错请指正~
作者: bibo9901 (function(){})()   2017-10-24 09:40:00
怪怪的
作者: Lipraxde (Lipraxde)   2017-10-24 10:20:00
我个人理解是在做语法分析的时候透过切出最小的块来处理,比一次处理一串还容易,切出来一小块一小块的东西叫它token,切出来归类比较好处理,而不是为了归类所以切出来
作者: notBeing (read and be read)   2017-10-24 10:55:00
去做个 lexer,不用猜
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-10-24 11:03:00
没有到0跟1的层级 一般parsing最基本的单位就字符当然除了ascii或unicode以外字符也可以定得更短但是以字符来理解就可以了
作者: Killercat (杀人猫™)   2017-10-24 12:01:00
直接用中文举例最快“等等你回家以后晾衣服”tokenize以后就是 等等 你 回家 以后 晾 衣服而不会是等 等你回 家以 后 晾衣 服
作者: TitanEric (泰坦)   2017-10-24 23:47:00
真的 做一个lexical analyzer最准
作者: uranusjr (←這人是超級笨蛋)   2017-10-26 13:30:00
用人类语言来比例的话就是类似词语 (vocabulary) 的概念因为不只是实体本身, 还包含语意概念概念, 确实有点抽象也没什么完美的解释方法, 一下不能理解就慢慢体会吧, 急着找明确的定义反而容易误解

Links booklink

Contact Us: admin [ a t ] ucptt.com