什麼是詞法分析

將原始碼的字元序列,分割成識別字、數值、運算子、保留字等語彙單元(token)的編譯器最初階段。空白與註解也在此去除。

日文名稱: 字句解析

「詞法分析」出現在1領域的4道練習題中(編譯器等)。

這個名詞所屬的領域: 編譯器

練習詞法分析的題目

關於編譯器詞法分析的作用,下列何者正確?

  1. A以樹狀結構檢查程式的敘述是否符合語言的文法
  2. B將原始碼的字元序列切分為識別字與運算子等token(詞元)
  3. C檢查變數的型別是否一致,以及是否使用了未定義的名稱
查看答案與解析

正確答案:B. 將原始碼的字元序列切分為識別字與運算子等token(詞元)

詞法分析是編譯器的第一個階段,例如會將「count = count + 1;」切分為識別字count、符號=、識別字count、符號+、數值1、符號;這些token。空白與註解也會在這個階段移除。token的規則可以用正規表示式描述,因此能以有限自動機高速處理。以樹狀結構檢查是否符合文法的是下一階段的語法分析,檢查型別與名稱的則是語意分析的工作。

在詞法分析中,常用來表示辨識token之規則的是下列何者?

  1. A浮點數的捨入規則
  2. B正規表示式,以及處理它的有限自動機
  3. C快取的置換規則
查看答案與解析

正確答案:B. 正規表示式,以及處理它的有限自動機

token的種類可以用正規表示式簡潔地描述,例如識別字是「以英文字母開頭、後面接英數字」,數值是「一個以上的數字連續出現」。正規表示式可以轉換成有限自動機(狀態數目有限的機器),每讀入一個字元就轉移一次狀態,便能在與輸入長度成正比的時間內切出token。因此詞法分析器也常以能從正規表示式自動產生的工具來製作。捨入與快取的規則與詞法分析無關。

解析中的「詞法分析」

出現「詞法分析」的題目(4題)

  1. 關於編譯器詞法分析的作用,下列何者正確?
  2. 在詞法分析中,常用來表示辨識token之規則的是下列何者?
  3. 關於編譯器的語法分析所進行的工作,下列何者正確?
  4. 下列何者是用來表示許多程式語言的文法、並成為語法分析之基礎的文法種類?

相關名詞

語法分析 JIT編譯(即時編譯) 中間表示法(IR) 共同子運算式消除 向量化 行內展開 抽象語法樹(AST) 指令排程 迴圈展開 基本區塊

前往名詞解釋列表