0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プログラミング言語を作る方法

Posted at

今回はプログラミング言語を作る方法を紹介します。
ここでは字句解析(プログラムの意味の解釈をする)について説明します。

1. EBNFを使う

EBNFを使って自分のプログラミング言語の文法規則を指定します。

メリット

  • 正規表現ライクな記述法でやりやすい(無理な人もいます)
  • EBNFの文法規則を指定するだけで変換は全部Larkとかがやってくれる

デメリット

  • 正規表現を超える文法は使えない
  • 文法規則を一から指定する必要がある

2. 全部作る

全て1から作ります。

メリット

  • 字句解析の理論等を理解できる
  • 全て思いのままに作れる

デメリット

  • 圧倒的にプログラミングする必要がある

3. 既存のプログラミング言語の字句解析エンジンを使う

例えばacorn、JavaScriptのパーサーです。

それってプログラミング言語を作っているの?

JavaScriptの標準規格のparseIntとかそういう関数を全部実装してなかったら、まあ、主張できるんじゃないですかね。
ライセンス表記は必要だけど。

メリット

  • 字句解析はローコードで出来る
  • 既存の慣れた文法を使える

デメリット

  • 新しい文法は作れない
  • 文法を消すこともできない(エラーを吐くことはできる)

まとめ

まあ他にも色々な方法があると思いましたが、今回は

を紹介しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?