GLR法とは

2015-04-01
memo

ツイッターで神々が書いていたけど、分からなかった単語を調べてみた。

GLR法とは

GLR法または一般化LR法(英: GLR parser)とは、非決定的で曖昧な文法を扱うようLR法を拡張したもの(”Generalized LR parser”)である。
1986年、冨田勝が発表した。冨田法、並列構文解析法とも呼ばれる。 Wikipedia - GLR法より

( ゚д゚)「何も分からん・・・」 そもそもLR法とは何だ?

LR法とは

LR法またはLR構文解析器とは、文脈自由文法の構文解析手法/構文解析器である。 LR法では、入力を左(Left)から右に読んでいき、右端導出(Rightmost derivation)を行う。このためLRと名づけられている。 Wikipedia - LR法より

つまりどういうこと・・・? もう少し読んでみると、少しヒントがあった。

ほとんどのプログラミング言語の文法は LR(1) で表されるため、LR法はコンパイラがソースコードの構文を解析する際によく使われる。

なるほど、ここでプログラミングに絡んでくるのか。 ということは、コンパイラとかを自作すると、きっとLR法が必要になるのだな。

もう少し調べる。

アクション表とかGOTO表とか出てきたが、全然頭に入ってこない・・・。 ふとWikiの参考文献のところを見てみると・・・

  • 原田憲一 訳、『コンパイラ—原理・技法・ツール』サイエンス社、1990年。ISBN 4-7819-0585-4
  • 原田憲一 訳、『コンパイラ—原理・技法・ツール』サイエンス社、1990年。ISBN 4-7819-0586-2

も、持ってた・・・。 いつか役に立つかもと思って、2年位前に中古で買ったやつだ・・・。

IMG_20150401_000246

というわけで、LR法はコンパイラ作る人には必須な知識でした。 参考文献の本は、中古で割安なのでお勧めです。(読んでないけど・・・)