プログラミング言語を定義するために使われているらしいと聞いたので、気になって調べてみました。 はじめにWikipediaの記事を読んでみたものの、何が書いてあるのか意味がわかりませんでした。。。 そこで検索していたら分かりやすいpptの資料を見つけてやっと理解できました。 先に形式文法を読んだら話の前提が分かったのかもしれません。 勉強するときって話の背景とか前提が分からないために敷居が高く感じることがありませんか? 情報工学を知っている人には当たり前の話になりそうですが、 僕にとっては言語、文法の意味を分かるのが理解の鍵だったので、そこの解説を書いてみようと思います。 言語とは 「言語L」を定義するものは 与えられた文字列が「言語L」であるか否かを判定する条件です。そして、その条件は文字列の集合として表わされます。たとえばLを とすると、文字列 ab, aabb, aaabbb, ...