essen_ex01_0001
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Essenのサンプルコード-01-0001
-(by [[K]], 2016.10.13)
** 註
-Essenは現在開発途上で、以下のプログラムはまだ現バージョ...
-「理想としてこういう記述ができる言語を目指している」とい...
** (1) 2から1万までの範囲で素数の個数を数える
-[pure-Essen版: 2016.10.14]
0001: c = 0
0002: init(a, 0)
0003: for (i, 2, 10001) { // 変数名, 初期値, 修了値
0004: if (a[i] == 1) { continue }
0005: c++;
0006: for (j, i * 2, 10001, i) { // 変数名, 初期値, ...
0007: a[j] = 1
0008: }
0009: }
0010: print(c)
--[解説]
--Essenではmain関数の宣言やincludeを書かずとも簡単なこと...
--Essenでは変数の宣言はいらない。2行目にはinit()なるもの...
--Essenでは基本的にセミコロンはいらない。あってもいいがな...
--Essenではifやforの中身が1文しかなくても、中カッコを省略...
--このサンプルでは、新出ローカル変数に対して#を省略しても...
--[補足1] initは中身に何も格納されていない配列(もしくは...
-[インラインC版: 2016.10.14]
0001: f = inline.gcc {{
0002: void entry(int *p)
0003: {
0004: static char a[10001]; // Essenでは大きなスタッ...
0005: int i, j, c = 0;
0006: for (i = 2; i <= 10000; i++)
0007: a[i] = 0;
0008: for (i = 2; i <= 10000; i++) {
0009: if (a[i] != 0) continue;
0010: c++;
0011: for (j = i * 2; j <= 10000; j += i)
0012: a[j] = 1;
0013: }
0014: *p = c;
0015: }
0016: }}
0017: c = zerobyte(4)
0018: f(c)
0019: print(getBl32(c, "c").c)
--[解説]
--1行目から16行目は関数宣言である。だから一度実行すれば何...
--このサンプルでは、新出ローカル変数に対して#を省略しても...
--getBl32という関数は、第一引数にバイト列を取り、第二引数...
* こめんと欄
#comment
終了行:
* Essenのサンプルコード-01-0001
-(by [[K]], 2016.10.13)
** 註
-Essenは現在開発途上で、以下のプログラムはまだ現バージョ...
-「理想としてこういう記述ができる言語を目指している」とい...
** (1) 2から1万までの範囲で素数の個数を数える
-[pure-Essen版: 2016.10.14]
0001: c = 0
0002: init(a, 0)
0003: for (i, 2, 10001) { // 変数名, 初期値, 修了値
0004: if (a[i] == 1) { continue }
0005: c++;
0006: for (j, i * 2, 10001, i) { // 変数名, 初期値, ...
0007: a[j] = 1
0008: }
0009: }
0010: print(c)
--[解説]
--Essenではmain関数の宣言やincludeを書かずとも簡単なこと...
--Essenでは変数の宣言はいらない。2行目にはinit()なるもの...
--Essenでは基本的にセミコロンはいらない。あってもいいがな...
--Essenではifやforの中身が1文しかなくても、中カッコを省略...
--このサンプルでは、新出ローカル変数に対して#を省略しても...
--[補足1] initは中身に何も格納されていない配列(もしくは...
-[インラインC版: 2016.10.14]
0001: f = inline.gcc {{
0002: void entry(int *p)
0003: {
0004: static char a[10001]; // Essenでは大きなスタッ...
0005: int i, j, c = 0;
0006: for (i = 2; i <= 10000; i++)
0007: a[i] = 0;
0008: for (i = 2; i <= 10000; i++) {
0009: if (a[i] != 0) continue;
0010: c++;
0011: for (j = i * 2; j <= 10000; j += i)
0012: a[j] = 1;
0013: }
0014: *p = c;
0015: }
0016: }}
0017: c = zerobyte(4)
0018: f(c)
0019: print(getBl32(c, "c").c)
--[解説]
--1行目から16行目は関数宣言である。だから一度実行すれば何...
--このサンプルでは、新出ローカル変数に対して#を省略しても...
--getBl32という関数は、第一引数にバイト列を取り、第二引数...
* こめんと欄
#comment
ページ名: