1.1 オートマトンと状態遷移図

第3章 字句解析
3.1
3.2
3.3
3.4
字句の構文と正規表現
字句解析のプログラム
字句解析の注意点
字句解析の実際
3.1 字句の構文と正規表現
(1)Cの識別子の例
識別子::=英字 | 識別子 英数字
英数字::=英字 | 数字
英字 ::=[A-Z] | [a-z] | _
数字 ::=[0-9]
(2)アルファベットの正規表現(regular expression)
①
②
③
④
⑤
空列εは正規表現である。
a∈Vならば、aは正規表現である。
rとsが正規表現ならば、r|sは正規表現である。
rとsが正規表現ならば、rsは正規表現である。
rが正規表現ならば、r*は正規表現である。
適用順序を定めるために括弧を用いる。
【表現方法】
【例】英字(英字 | 数字)*
① |ε| = {ε}
② |a|
= {a}(a∈V)
③ |r|s| = |r|∪|s|
④ |r s| = {xy| x∈|r|, y∈|s|}
⑤ |r* | = {x1x2…xn | xi∈|r|, n≧0}
(3)正規表現と正規文法
①両者が表現できる範囲は、ほぼ同じ。
②正規表現のほうが見やすい。
一般に正規表現が使われることが多い。
(4)形態素解析(morphemic analysis)
自然言語の場合
自然言語の場合、
語形が変形する(単/複数、過去/過去分詞、…)ので、
単語よりもより小さい単位の形態素(morpheme)の単位で
解析することが多い。
これを形態素解析(morphemic analysis)と呼ぶ。
【未知語の処理】
~able, ~ish,~cal :形容詞
~ment,~ion, ~ology :名詞
【日本語における最長マッチング】
日本語の場合、単語に分解するには、パターンマッチングを行
う必要がある。このとき最長マッチングが行われる。