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