3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

私が今作っている言語について

3
Last updated at Posted at 2026-01-27

私は現在、F#やRustを用いて、システムプログラミング言語を開発しています(今回は本気)

設計思想

  • プログラムはメモリ安全でなければいけない

  • 実行時コストを限界まで抑えなければいけない

  • 並列処理を安全に行わなければいけない

  • ビルド時間は短くなくてはならない(ビルド時間は支障のない程度でなければいけない)

メモリ管理モデルについて

「GCとかARCはイマイチだな〜...」

「所有権システムもなぁ...」

結果、メモリ管理モデルを新しく作ることにしました

パーサについて

F#のFParsecを使っています。いろんな意味で面倒臭い...

あと、式と少しの構文だけ

コンパイラ

多分この言語を作る中で、これが一番難しいのでは

AST

ASTは配列を使って平坦化します

判別共用体で階層的にやってもいいけど、CPUの気持ちで考えるとこっちの方が良いと思った
これのおかげでパーサがめんどい

型推論

ASTがフラットなので、型の断定後の変更は結構楽かも

バイナリ生成

MLIRファイルを作成
 → 書き込み
 → LLVMへコンパイル
 → バイナリ

といった感じです。早く.NETにもMLIRSharpみたいなのが追加されてくれ...

最後に

なんか独自概念が2, 3個ほどできそうです

学生なので完成するまでに長い時間を要すると思います

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?