今回はプログラミング言語を作る方法を紹介します。
ここでは字句解析(プログラムの意味の解釈をする)について説明します。
1. EBNFを使う
EBNFを使って自分のプログラミング言語の文法規則を指定します。
メリット
- 正規表現ライクな記述法でやりやすい(無理な人もいます)
- EBNFの文法規則を指定するだけで変換は全部Larkとかがやってくれる
デメリット
- 正規表現を超える文法は使えない
- 文法規則を一から指定する必要がある
2. 全部作る
全て1から作ります。
メリット
- 字句解析の理論等を理解できる
- 全て思いのままに作れる
デメリット
- 圧倒的にプログラミングする必要がある
3. 既存のプログラミング言語の字句解析エンジンを使う
例えばacorn、JavaScriptのパーサーです。
それってプログラミング言語を作っているの?
JavaScriptの標準規格のparseInt
とかそういう関数を全部実装してなかったら、まあ、主張できるんじゃないですかね。
ライセンス表記は必要だけど。
メリット
- 字句解析はローコードで出来る
- 既存の慣れた文法を使える
デメリット
- 新しい文法は作れない
- 文法を消すこともできない(エラーを吐くことはできる)
まとめ
まあ他にも色々な方法があると思いましたが、今回は
を紹介しました。