Essen
の編集
https://khfdpl.osask.jp:443/wiki/?Essen
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
2016_10
2016_11
2016_12
BracketName
Essen
Essen0
Essen1
Essen2
Essen3
Essen4
EssenMemo0001
EssenMemo0002
EssenMemo0003
EssenMemo0004
EssenMemo0005
EssenMemo0006
EssenMemo0007
EssenMemo0008
EssenMemo0009
EssenMemo0010
EssenMemo0011
EssenR2
EssenR2_ess03f
EssenR2_ess03h
EssenR2_ess03i
EssenR2_ideas
EssenR2_jit00
EssenR2_jit01
FormattingRules
FrontPage
Help
IP
InterWiki
InterWikiName
InterWikiSandBox
K
KHPC
KHPC_v000doc01
KHPC_v001doc01
KHPC_v002doc01
KHPC_v003doc01
MenuBar
OSC
OSC20181027
OSC20190222
OSC20191123
OSC20230401
OSC20230528
OSC20231021
OSC20240310
OSC20241026
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RecentDeleted
SandBox
SltVA
VariableArray
WikiEngines
WikiName
YukiWiki
advcal20161205
advcal20161206
advcal20161209
advcal20161210
advcal20161215
eoml0001
eoml0002
essen_ex01_0001
impressions
kcl_malloc
khfdpl_result1
members
memo0001
memo0002
note0001
note0002
note0003
note0004
note0005
note0006
oldworks
oldworks00
oldworks06
oldworks12
oldworks13
osaskjp_index
persistent_C
populars
pr20161105
pr20161105b
scsc
seccamp2017
spam_test
uxf
uxf_01
uxf_02
uxp
* プログラミング言語 Essen -(by [[K]], 2016.10.24) ** これはなに? -インタプリタ型で対話式のプログラミング言語です。高速ではありません。インストールサイズは結構小さいです。 -変数の仕組み(構造体の仕組み)がファイルパスに似ているというところに目を付けて、入れ子になった構造体変数がファイルシステムの代わりになることを目指しています。変数は永続化され、PCの電源をOFFにしても消えません。 -また同時に複数のプログラムを動かすことができ、その際にはプログラムの優先度を設定できたりするなど、タスクスケジューラのような機能も持たせる予定です。 -つまりOS側に多階層のファイルシステムがなかったり、マルチタスクのサポートがなくても、それらについてはEssenが面倒を見ますので、シェルとしてEssenを移植したら、「簡素な自作OSが急に立派になった」みたいなことを目指しています。 -しかし当面はWindows向けに開発します。 -現状は開発初期で、上記はすべて「目標」です。 ** 特徴 -C言語は関数を自由に作れた。C++は型を自由に作れた。 -Essenは、それらに加えて、演算子と構文を自由に作れる。 -変数はファイルの代わりなので、名前を変更することができる。移動もできる。 ** プログラム例 -1~9の数字が書かれたカードが、それぞれ1枚ずつある。 -ここから3枚を選ぶ。 -3枚の数字の合計が10になるのは何パターンあるか? c = 0 combiFor(f 9 3) { if (sum(k 1 9) { f[k - 1] * k } == 10) { c++ } } print(c) -ポイント: --セミコロンは省略できる。引数区切りのカンマも省略できる。 --文が1文しかなくても、中カッコは省略できない。 --型宣言は不要。 --combiFor(f 9 3)は9個の中から3つを選ぶ組わせをすべて列挙するforループ。変数fに(1 1 1 0 0 0 0 0 0)などが格納される。 --sum(k 1 9) { ... } は、k=1~9に対して、{ } の中を計算してその和を取る。 --Essenは構文を自由に作れるので、combiForやsumのような構文も思いつきですぐに作れる。 ** 背景の思想 -同じようなことをしたいだけなのに、記法が何通りもあるのは気に入りません。しかもそれを強いられるのが嫌いです。 -シェルスクリプト(バッチファイル)の文法が、どうしてC言語と同じじゃいけないんですか? -「データを記憶する」という同じ動作なのに、変数だと代入で、ファイルだとfopen/fwriteで、環境変数だとputenvで、データベースだとINSERT文で・・・ってどうしてこんなに違うのか・・・。操作対象が違ってもそれほどには記法が変わらない世界は構築できないのでしょうか。 -そんなことを考えて、それを実現するにはどうしたらいいだろう、じゃあこうしてみようという自分なりの回答がEssenです。 ** よきライバル -プログラミング言語 nv (hikaliumさん作) → https://github.com/hikalium/nv/wiki //-プログラミング言語 rhino-c (yasuo-ozuさん作) → https://github.com/yasuo-ozu/rhino-c2/wiki ** 目次 -[[EssenMemo0001]]: こういうのがやりたい#1~#2 (ほぼ没) -[[EssenMemo0002]]: 進捗: 2017.04.24~ -[[EssenMemo0003]]: 基本的な文法・機能(案) -[[EssenMemo0004]]: スキップリスト・KISL -[[EssenMemo0005]]: virtual-index -[[EssenMemo0006]]: セキュリティキャンプ2017 の応募用紙からいただいた意見について -[[EssenMemo0007]]: プログラミング言語を作るべきときはいつか? -[[EssenMemo0008]]: Essen_Rev1 -[[EssenMemo0009]]: 実現したい機能のために仕様を考える#1
タイムスタンプを変更しない
* プログラミング言語 Essen -(by [[K]], 2016.10.24) ** これはなに? -インタプリタ型で対話式のプログラミング言語です。高速ではありません。インストールサイズは結構小さいです。 -変数の仕組み(構造体の仕組み)がファイルパスに似ているというところに目を付けて、入れ子になった構造体変数がファイルシステムの代わりになることを目指しています。変数は永続化され、PCの電源をOFFにしても消えません。 -また同時に複数のプログラムを動かすことができ、その際にはプログラムの優先度を設定できたりするなど、タスクスケジューラのような機能も持たせる予定です。 -つまりOS側に多階層のファイルシステムがなかったり、マルチタスクのサポートがなくても、それらについてはEssenが面倒を見ますので、シェルとしてEssenを移植したら、「簡素な自作OSが急に立派になった」みたいなことを目指しています。 -しかし当面はWindows向けに開発します。 -現状は開発初期で、上記はすべて「目標」です。 ** 特徴 -C言語は関数を自由に作れた。C++は型を自由に作れた。 -Essenは、それらに加えて、演算子と構文を自由に作れる。 -変数はファイルの代わりなので、名前を変更することができる。移動もできる。 ** プログラム例 -1~9の数字が書かれたカードが、それぞれ1枚ずつある。 -ここから3枚を選ぶ。 -3枚の数字の合計が10になるのは何パターンあるか? c = 0 combiFor(f 9 3) { if (sum(k 1 9) { f[k - 1] * k } == 10) { c++ } } print(c) -ポイント: --セミコロンは省略できる。引数区切りのカンマも省略できる。 --文が1文しかなくても、中カッコは省略できない。 --型宣言は不要。 --combiFor(f 9 3)は9個の中から3つを選ぶ組わせをすべて列挙するforループ。変数fに(1 1 1 0 0 0 0 0 0)などが格納される。 --sum(k 1 9) { ... } は、k=1~9に対して、{ } の中を計算してその和を取る。 --Essenは構文を自由に作れるので、combiForやsumのような構文も思いつきですぐに作れる。 ** 背景の思想 -同じようなことをしたいだけなのに、記法が何通りもあるのは気に入りません。しかもそれを強いられるのが嫌いです。 -シェルスクリプト(バッチファイル)の文法が、どうしてC言語と同じじゃいけないんですか? -「データを記憶する」という同じ動作なのに、変数だと代入で、ファイルだとfopen/fwriteで、環境変数だとputenvで、データベースだとINSERT文で・・・ってどうしてこんなに違うのか・・・。操作対象が違ってもそれほどには記法が変わらない世界は構築できないのでしょうか。 -そんなことを考えて、それを実現するにはどうしたらいいだろう、じゃあこうしてみようという自分なりの回答がEssenです。 ** よきライバル -プログラミング言語 nv (hikaliumさん作) → https://github.com/hikalium/nv/wiki //-プログラミング言語 rhino-c (yasuo-ozuさん作) → https://github.com/yasuo-ozu/rhino-c2/wiki ** 目次 -[[EssenMemo0001]]: こういうのがやりたい#1~#2 (ほぼ没) -[[EssenMemo0002]]: 進捗: 2017.04.24~ -[[EssenMemo0003]]: 基本的な文法・機能(案) -[[EssenMemo0004]]: スキップリスト・KISL -[[EssenMemo0005]]: virtual-index -[[EssenMemo0006]]: セキュリティキャンプ2017 の応募用紙からいただいた意見について -[[EssenMemo0007]]: プログラミング言語を作るべきときはいつか? -[[EssenMemo0008]]: Essen_Rev1 -[[EssenMemo0009]]: 実現したい機能のために仕様を考える#1
テキスト整形のルールを表示する