プログラミング言語 Essen #1
これはなに?
- まずはEssenを読んでね。ここは続きを書きます。
Essenの基本コンセプト
- (1)C言語風の言語であること
- LISPみたいなのはすごいけどやりすぎで自分に使いこなせる自信がない。代入はa=1みたいに書きたいし、加算もc=a+bで書きたい。
- (2)文法規則がシンプルで例外が少ないこと
- C言語はそれほどシンプルではない。なぜfor構文の時だけカッコの中にセミコロンが書けるの?
- (3)ifやforなどの構文や演算子の規則が、固定されたルールではなく、C言語で言うところのライブラリみたいなものであること
基本以外のコンセプト
- インタプリタ。evalがやりたい。
- ローカル変数はある。
- 変数に型はなく、値に型がある。
- gotoもある。ただしスコープのネストの内側にはジャンプできない。同じスコープか
、外側のスコープならジャンプできる(このスコープのルールさえ満たしていれば、関数の中から脱出することも可能だし、前方参照・後方参照も自由自在)。
- 主にC言語で実装するが、できるだけシンプルに書きたい。
Essenが目指しているもの
- EssenはPCを起動したらすぐ起動して、PCの電源を切るまでずっと起動したままにする感じで、シェルの代わりとして使う。
- Essenの変数はファイルの代わりに活用可能で、セーブしておくことができる。
- 理想としては、すべてのPC作業をEssen上で完結させたい。
- Essenで書かれたテキストエディタがあり、Essenで書かれたゲームやツールとかもあって、それらがあれば事足りるイメージ。
- Essenはあまり大きなプログラムではないので、移植も容易で、つまり簡単にそれらの環境をさまざまな環境で再現できる。
- インタプリタなのでコンパイラ言語よりは遅いが、しかしそうはいっても速度比は10倍程度だろうと思われるので、アルゴリズムの比ほどではない(アルゴリズムの良し悪しで、速度は100倍くらい違うこともある)。つまり、Essenではアルゴリズムを追及してほしい。それでも速さが足りなければ、その時点で特に重い部分だけをC言語などで書き直せばいいと思う。何もかも高速化する必要なんてない。
- 整数の精度を256ビットから無制限可変長に:
- nvが可変長整数を採用するらしく、それが非常にうらやましかったため(笑)。
C言語とは明らかに違う仕様
C言語とは少し違う仕様
- 文末のセミコロンは省略できる。ただしセミコロンを入れないと意味が変わってしまう場合などは、セミコロンを入れるしかない。省略は義務ではないので省略しなくても問題ない。
a = 0 b = 1 c = 2
こめんと欄
|