作者zzss2003 (brotherD)
看板C_and_CPP
标题Re: [问题] token在这个上下文中所代表的意思
时间Tue Oct 24 09:31:16 2017
※ 引述《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会有分类的原因。
有错请指正~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1508808679.A.3FF.html
1F:→ bibo9901: 怪怪的 10/24 09:40
2F:推 Lipraxde: 我个人理解是在做语法分析的时候透过切出最小的块来处理 10/24 10:20
3F:→ Lipraxde: ,比一次处理一串还容易,切出来一小块一小块的东西叫它 10/24 10:20
4F:→ Lipraxde: token,切出来归类比较好处理,而不是为了归类所以切出 10/24 10:20
5F:→ Lipraxde: 来 10/24 10:20
6F:→ notBeing: 去做个 lexer,不用猜 10/24 10:55
7F:→ MOONRAKER: 没有到0跟1的层级 一般parsing最基本的单位就字元 10/24 11:03
8F:→ MOONRAKER: 当然除了ascii或unicode以外字元也可以定得更短 10/24 11:04
9F:→ MOONRAKER: 但是以字元来理解就可以了 10/24 11:05
谢谢指正,我会提到0跟1是因为H大提到程式码是一个连续的位元流
※ 编辑: zzss2003 (60.248.26.157), 10/24/2017 11:39:46
10F:推 Killercat: 直接用中文举例最快「等等你回家以後晾衣服」 10/24 12:01
11F:→ Killercat: tokenize以後就是 等等 你 回家 以後 晾 衣服 10/24 12:01
12F:→ Killercat: 而不会是等 等你回 家以 後 晾衣 服 10/24 12:02
13F:推 TitanEric: 真的 做一个lexical analyzer最准 10/24 23:47
14F:→ uranusjr: 用人类语言来比例的话就是类似词语 (vocabulary) 的概念 10/26 13:30
15F:→ uranusjr: 因为不只是实体本身, 还包含语意概念概念, 确实有点抽象 10/26 13:31
16F:→ uranusjr: 也没什麽完美的解释方法, 一下不能理解就慢慢体会吧, 急 10/26 13:31
17F:→ uranusjr: 着找明确的定义反而容易误解 10/26 13:32