Essen1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* プログラミング言語 Essen #1
-(by [[K]], 2016.07.20)
** これはなに?
-まずは[[Essen]]を読んでね。ここは続きを書きます。
** Essenの基本コンセプト
-(1)C言語風の言語であること
--LISPみたいなのはすごいけどやりすぎで自分に使いこなせる...
-(2)文法規則がシンプルで例外が少ないこと
--C言語はそれほどシンプルではない。なぜfor構文の時だけカ...
-(3)ifやforなどの構文や演算子の規則が、固定されたルールで...
--つまり制御構文を増やすこともできる。
** 基本以外のコンセプト
-インタプリタ。evalがやりたい。
-ローカル変数はある。
-変数に型はなく、値に型がある。
-gotoもある。ただしスコープのネストの内側にはジャンプでき...
、外側のスコープならジャンプできる(このスコープのルール...
-主にC言語で実装するが、できるだけシンプルに書きたい。
** Essenが目指しているもの
-EssenはPCを起動したらすぐ起動して、PCの電源を切るまでず...
-Essenの変数はファイルの代わりに活用可能で、セーブしてお...
-理想としては、すべてのPC作業をEssen上で完結させたい。
--Essenで書かれたテキストエディタがあり、Essenで書かれた...
--Essenはあまり大きなプログラムではないので、移植も容易で...
-インタプリタなのでコンパイラ言語よりは遅いが、しかしそう...
** [[Essen]]からの差分
-式評価アルゴリズムの変更:
--a=2*3+4*(5+6); という式があったときに、[[Essen]]に書い...
--でも世間一般で期待されているのは、おそらく2*3を先にやる...
#1: 2*3=6
#2: 5+6=11
#3: 4*11=44
#4: 6+44=50
--ということでこの順序で計算させることにした。
-整数の精度を256ビットから無制限可変長に:
--nvが可変長整数を採用するらしく、それが非常にうらやまし...
** C言語とは明らかに違う仕様
-(1)if文、for文、while文で、たとえコード片(コードブロッ...
-(2)カッコは関数の引数の範囲を指定するか、もしくは配列や...
[例] a=2*_(3+4);
-(3)C言語では、単に変数スコープを一段深くするために{ }を...
--アンダスコアを付けないと、ただのコード片定数となってし...
--アンダスコアは実は「関数」で、アンダースコア関数は、引...
-(4)新出の変数に対して宣言はいらないものの、かといって何...
#a=3;
abc.def.ghi = 0; // defやghiが新出でもわざわざ#は付けな...
** C言語とは少し違う仕様
-文末のセミコロンは省略できる。ただしセミコロンを入れない...
a = 0 b = 1 c = 2
* こめんと欄
#comment
終了行:
* プログラミング言語 Essen #1
-(by [[K]], 2016.07.20)
** これはなに?
-まずは[[Essen]]を読んでね。ここは続きを書きます。
** Essenの基本コンセプト
-(1)C言語風の言語であること
--LISPみたいなのはすごいけどやりすぎで自分に使いこなせる...
-(2)文法規則がシンプルで例外が少ないこと
--C言語はそれほどシンプルではない。なぜfor構文の時だけカ...
-(3)ifやforなどの構文や演算子の規則が、固定されたルールで...
--つまり制御構文を増やすこともできる。
** 基本以外のコンセプト
-インタプリタ。evalがやりたい。
-ローカル変数はある。
-変数に型はなく、値に型がある。
-gotoもある。ただしスコープのネストの内側にはジャンプでき...
、外側のスコープならジャンプできる(このスコープのルール...
-主にC言語で実装するが、できるだけシンプルに書きたい。
** Essenが目指しているもの
-EssenはPCを起動したらすぐ起動して、PCの電源を切るまでず...
-Essenの変数はファイルの代わりに活用可能で、セーブしてお...
-理想としては、すべてのPC作業をEssen上で完結させたい。
--Essenで書かれたテキストエディタがあり、Essenで書かれた...
--Essenはあまり大きなプログラムではないので、移植も容易で...
-インタプリタなのでコンパイラ言語よりは遅いが、しかしそう...
** [[Essen]]からの差分
-式評価アルゴリズムの変更:
--a=2*3+4*(5+6); という式があったときに、[[Essen]]に書い...
--でも世間一般で期待されているのは、おそらく2*3を先にやる...
#1: 2*3=6
#2: 5+6=11
#3: 4*11=44
#4: 6+44=50
--ということでこの順序で計算させることにした。
-整数の精度を256ビットから無制限可変長に:
--nvが可変長整数を採用するらしく、それが非常にうらやまし...
** C言語とは明らかに違う仕様
-(1)if文、for文、while文で、たとえコード片(コードブロッ...
-(2)カッコは関数の引数の範囲を指定するか、もしくは配列や...
[例] a=2*_(3+4);
-(3)C言語では、単に変数スコープを一段深くするために{ }を...
--アンダスコアを付けないと、ただのコード片定数となってし...
--アンダスコアは実は「関数」で、アンダースコア関数は、引...
-(4)新出の変数に対して宣言はいらないものの、かといって何...
#a=3;
abc.def.ghi = 0; // defやghiが新出でもわざわざ#は付けな...
** C言語とは少し違う仕様
-文末のセミコロンは省略できる。ただしセミコロンを入れない...
a = 0 b = 1 c = 2
* こめんと欄
#comment
ページ名: