10. 2009 年 10 月 23 日 言語処理系入門1 10
正規表現によるトークンの規定
正規表現を用いるとトークンの持つパターンを上手
く規定してやることができる
例:
‘整数: -’? (‘0’ | ‘1’ | … | ‘9’)+
C の識別子 : (alpha | ’_’) (alpha | digit | ’_’)*
ただし, digit = ‘0’ | ‘1’ | … | ‘9’ ,
alpha = ‘a’ | ‘b’ | … | ‘z’ | ‘A’ | … | ‘Z’ | とする.
日付 : d d d d ‘/’ d d ‘/’ d d
ただし, d = digit
演習:浮動小数点数のパタンを正規表現で定義せよ
11. 2009 年 10 月 23 日 言語処理系入門1 11
正規表現とオートマトン
正規表現は決定性有限オートマトンに機械的
に変換することが可能
正規表現で記述したパターンを認識(判別)する
プログラムを自動生成することができる
例: (a|b)*abb を受理する決定性オートマト
ン
0 1 2 3
開始
a b
b
a
b
a
a
b