未来のプログラミング言語
LL Futureまで、後2週間です。で、未来のプログラミング言語特に、
C言語の後継言語について考えてみました。
D言語があるじゃないかって?いや、D言語は残念ながら、C++の後継なんです。
- 構造化されたマクロが使える
Lispのように。
- パーサを比較的簡単に作れる
LispのS式のように。
- 優先順位付き演算子をユーザーが定義できる。
Haskellのごとく。
- ガーベジコレクタを選択的に使用できる。
ハードウェアでガーベジコレクションを行うようになっていないと仮定すれば、
ガーベジコレクションの仕組みをC言語で作れなくてはなりません。
ゆえに、ガーベジコレクションを使わないでプログラムを組むことが出来ます。
しかしながら、選択的にガーベジコレクションを使ったプログラムも行えます。
ここでいうガーベジコレクションの種類は参照カウンタも含みます。
ユーザーは様様なメモリ管理を使い分けられます。
- インラインアセンブラは単なるDSL。
たとえば、xbyakはc++の単なるライブラリとして動的なアセンブルをすることが可能です。
未来のC言語ではコンパイル時にバイトコードを出力することができるような設計
になっていて、インラインアセンブルはDSLとして実行できます。
- 現存する主要な言語の効率的な実装を書ける。
現在のC言語では実行モデルが限定されている部分があるため、
効率的な実装をC言語では書くことが出来ない言語が存在しています。
そのような言語を実装することが出来る機能を未来のC言語はもっています。
要するに話題のLLVMやなんかコンパイラインフラストラクチャの機能を持ってるってことです。
それでいて、汎用的にOSを書くことも出来る。ゲームも書くことが出来るのです。
ということを考えつつ、この言語の基本となる式言語と、マクロ用の言語を現在開発中です。