さて、プログラミング言語を作ろうとしたさいに、出来るだけローレベルな言語を使うことはあるかと思います。例えば、C、C++、OCaml、Haskellなど、そのあたりがプログラミング言語を作るためのプログラミング言語として採用することが多いかと思われます。さて、Go languageも、バイナリに変換出来ますし、その上gorutineという並列処理が言語仕様として入ってます。したがって、Goでプログラミング言語、書くっきゃないね! プログラミング言語とはそもそも何か とはいえ、いきなり言われても、「プログラミング言語ってそもそも何ですか」みたいな話になるかと思われます。もちろん、このあたりについては実装によって変わってくるのかもしれませんが、基本的には三つの過程を経ています。 字句解析 構文解析 意味解析 今回は、この上二つ、字句解析と構文解析についてのメモ書きを公開します。