essen_hist
の編集
http://essen.osask.jp/?essen_hist
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
BracketName
EssenRev4
FormattingRules
FrontPage
Help
InterWiki
InterWikiName
InterWikiSandBox
K
MenuBar
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
SDL2_01
SandBox
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
a21
a21_bbs01
a21_count
a21_memo01
a21_tl9a
a21_txt01
a21_txt01_10
a21_txt01_1a
a21_txt01_2
a21_txt01_2a
a21_txt01_2b
a21_txt01_3
a21_txt01_4
a21_txt01_5
a21_txt01_6
a21_txt01_6a
a21_txt01_7
a21_txt01_8
a21_txt01_8a
a21_txt01_9
a21_txt01_9a
a21_txt02
a21_txt02_1a
a21_txt02_1b
aclib00
aclib01
aclib02
aclib03
aclib04
aclib05
aclib06
aclib07
aclib08
aclib09
aclib10
aclib11
aclib12
aclib13
aclib14
aclib15
aclib16
aclib17
aclib18
aclib19
aclib20
aclib21
aclib22
aclib23
aclib24
aclib25
aclib_bbs
arm64_01
avm0001
edu0001
edu0002
esb02b_hrb
esb_dbg
esbasic0001
esbasic0002
esbasic0003
esbasic0004
esbasic0005
esbasic0006
esbasic0007
esbasic0008
esbasic0009
esbasic0010
esbasic0011
esbasic0012
esbasic0013
esbasic0014
esbasic0015
esbasic0016
esbasic0017
esbasic02a
esc0001
escm0001
essen_hist
esvm0001
esvm0002
esvm0003
esvm0004
esvm0005
esvm0006
esvm_i0
hh4a
idea0001
idea0002
idea0003
impressions
jck_0000
jck_0001
kawai
kbcl0_0000
kbcl0_0001
kbcl0_0002
kbcl0_0003
kbcl0_0004
kbcl0_0005
kbcl0_0006
kbcl0_0007
kclib1_0000
kclib1_0001
kclib1_0002
kclib1_0003
kclib1_0004
kclib1_0005
kclib1_0006
kclib1_0007
kclib1_0008
kclib1_0009
kclib1_0010
kpap0001
members
memo0001
osask4g
osask4g_r2
p20200311a
p20200610a
p20200610b
p20200624a
p20200711a
p20200716a
page0001
page0002
page0003
page0004
page0005
page0006
page0007
page0008
page0009
page0010
page0011
page0012
page0013
page0014
page0015
page0016
page0017
page0018
page0019
page0020
page0021
page0022
page0023
populars
seccamp
seccamp2019
sechack
sechack2019
seclang01
sh3_2020
sh3_2020_kw
sh3_2020_nk
sh3_2021_kw
sh3_2021_nk
sh3_kw_hist
termux001
termux002
text0001
text0001a
text0002
text0002a
text0003
text0004
text0005
text0006
text0006a
text0007
text0008
text0010
text0011
text0012
text0013
text0014
text0015
text0016
text0017
text0018
text0019
text0020
text0021
tl1c
tl2c
tl3c
tl3d
* Essenの歴史 -(by [[K]], 2020.06.11) ** (1) -Essen(えっせん)は、OSASK計画のサブプロジェクトで、新しい言語を作ることによって、プログラミングをより容易にしようという試みです。 ** (2) 歴史(概要) -[2020.04.23] ''ES-BASIC ver.0.2a'' : ES-BASICのかなりまともなバージョン → [[esbasic02a]] ** (3) 歴史(詳細) -これは時系列を追いかけたいときのためのものであって、基本的に読む必要のないものです。上記の概要だけで、たいていは事足ります。 -[2015.03.17] ''KH-FDPL'' → http://khfdpl.osask.jp/wiki/ -[2016.02.17] ''KHPC (persistent-C)'' → http://khfdpl.osask.jp/wiki/?persistent_C -[2016.10.24] ''Essen (Essen Rev1)'' : セキュリティキャンプ2017で作っていたバージョン1 → http://khfdpl.osask.jp/wiki/?Essen -[2017.07.31] ''Essen Rev2'' : セキュリティキャンプ2017で作っていたバージョン2 JITコンパイル方式 → http://khfdpl.osask.jp/wiki/?EssenR2 -[201?.??.??] ''Essen Rev3'' : その後迷走したバージョン -[2018.03.05] ''Essen Rev4'' : SecHack365 / セキュリティキャンプ2018で作っていたバージョン → [[EssenRev4]] -[2018.02.09] ''Essen2019-A'' : OSC2019東京・春で発表したもの(展示) → http://k.osask.jp/wiki/?p20190209b -[2019.07.16] ''ES-BASIC ver.0.0a'' : SecHack365で作っていたバージョン → [[esbasic0001]] -[2020.04.23] ''ES-BASIC ver.0.2a'' : ES-BASICのかなりまともなバージョン → [[esbasic02a]] ** (4) 説明 //-OSASK計画では、理想の環境を実現するためにOSから作り直そうと考えていました(第一世代OSASK)。 //-それが揺らいで、既存OSの上に理想の環境を構築すればいいのではないか、そのほうが労力は少なくて済むのではないか、みたいになり、世代を重ねてきました。 -あるとき私はプログラミング言語を作ろうと思いました。しかし、どんな言語にしたらいいのか事前に決められません。それで、「言語を簡単に作るための言語」を作ろうと考えました。これができれば、仕様が決まった後で短期間で作れるはずです。これが''KH-FDPL''です。 -KH-FDPLはあまりうまくいかなくて、それで作り直すことにしました。今度は、関数や構造体を宣言するように、新しい構文や新しい演算子を自由に宣言できるような言語を作ろうと考えました。それが''Essen Rev1''です。 -しかし、途中でJITコンパイラの実行速度に魅せられてしまい(笑)、言語はJITコンパイラ方式で作らねばならないと信じるようになり、次はJITコンパイラな言語を作り始めます。これが''Essen Rev2''です。 -その後、作っているうちに「うーん、作りたいのはこれじゃない・・・」というのを繰り返して、度重なる作り直しに嫌気がさして、言語開発を休止する決意をします。 -そして、今まで作ってきて事前にどういう関数があれば作りやすくなりそうかが分かってきたので、それを一度整理してみることにしました。 -そんな自作のライブラリがある程度できたところで、「試しにこれで言語を一つ作ってみるか」と気楽に作り始めたのが''ES-BASIC ver.0.0a''です。もちろんJITコンパイラです。 -これは3日間で、「とても3日で作ったとは思えない」ほどの出来栄えになり、私は気をよくしてさらに改良を続けます。 -結局、言語を作りやすくするために言語を作るのではなく、ライブラリを作ればよかったのです。やっとそれに気づけたわけです。 -ES-BASICはその後も成長を続けて、''ES-BASIC ver.0.2a''で一区切りつけることができました。この先はBASICではなく、C言語として作りたいと思っています。 ** (5) 言語に盛り込もうとしているアイデアのリスト [ES-BASIC ver.0.2b時点] |No.|アイデア|esb02b| |#01|[KH-FDPL]インタプリタで分かりやすい。|〇| |#02|[KH-FDPL]変数宣言とかをしなくてもいきなり代入できる。|〇| |#03|[KH-FDPL]オブジェクトの永続性。|△| |#04|[KH-FDPL]オブジェクトシステム(変数システム)がファイルシステムみたいになっている。|×| |#05|[KH-FDPL]独自のオブジェクト寿命システム。|△| |#06|[KH-FDPL]自己拡張可能型の文法。|△| |#07|[KH-FDPL]セキュリティ。|△| |#03|[persistent-C]オブジェクトの永続性。|△| |#08|[persistent-C]プログラムを中断しても途中から再開できる。|△| |#01|[EssenR1]対話式のインタプリタ。|〇| |#04|[EssenR1]入れ子になった構造体変数がファイルシステムの代わりになる。|×| |#03|[EssenR1]変数は永続化される。|△| |#06|[EssenR1]構文や演算子を自由に作れる言語。|△| |#09|[EssenR1]同時に複数のプログラムを動かすことができる。優先順位も付けられる。|×| |#10|[EssenR1]インラインで複数の言語を混ぜられる。|△| |#11|[EssenR2]実行速度は重要だと思うようになったのでJITコンパイラ方式を採用|〇| |#12|[EssenR4]静的型付き言語に変更|△| |#13|[EssenR4]インタプリタだけではなく、コンパイラとしても機能できる。|〇| |#09|[Essen2019-A]同時に複数のプログラムを動かすことができる。優先順位も付けられる。|×| |#14|[Essen2019-A]実行中のプログラムの変数を監視できる。|△| |#15|[Essen2019-A]実行中のプログラムの状態を保存できる。復元して再開できる。|×| |#16|[EsBasicV02]オーバーフローの検出。|〇| |#17|[EsBasicV02]行ごとに実行回数をカウントできる。|〇| |#18|[EsBasicV02]グラフィックが簡単に扱える。|〇| |#19|[EsBasicV02]自作OS上でも動く。|〇| -補足 --#03のオブジェクトの永続性については、ES-BASICではプログラムを終了しても変数が消えないというだけであり、ファイルに保存できるところまではいっていない。 --#05のオブジェクトの寿命については、ES-BASICでのサポートは全くできていないものの、自作ライブラリ上ではできるようになっているので、サポートするのは難しくない段階にきている。 --#06については、ES-BASICの機能としては拡張可能なレベルにはなっていないものの、言語処理系は簡単な仕組みになっていて、改造が容易であり、だから結果的には及第点だと思っている。 --#09の複数のプログラムを同時に動かせることについては、Essen2019-Aで実現したものの、ES-BASICには入っていない。 -まとめ --#04と#09と#15を取り込むことが長期的な課題である。 --この一連の開発の中でEssen2019-Aはやや外れた位置にあるが、これはずっと実装できていなかったアイデアを試すためのものだったからである(#09と#15)。
タイムスタンプを変更しない
* Essenの歴史 -(by [[K]], 2020.06.11) ** (1) -Essen(えっせん)は、OSASK計画のサブプロジェクトで、新しい言語を作ることによって、プログラミングをより容易にしようという試みです。 ** (2) 歴史(概要) -[2020.04.23] ''ES-BASIC ver.0.2a'' : ES-BASICのかなりまともなバージョン → [[esbasic02a]] ** (3) 歴史(詳細) -これは時系列を追いかけたいときのためのものであって、基本的に読む必要のないものです。上記の概要だけで、たいていは事足ります。 -[2015.03.17] ''KH-FDPL'' → http://khfdpl.osask.jp/wiki/ -[2016.02.17] ''KHPC (persistent-C)'' → http://khfdpl.osask.jp/wiki/?persistent_C -[2016.10.24] ''Essen (Essen Rev1)'' : セキュリティキャンプ2017で作っていたバージョン1 → http://khfdpl.osask.jp/wiki/?Essen -[2017.07.31] ''Essen Rev2'' : セキュリティキャンプ2017で作っていたバージョン2 JITコンパイル方式 → http://khfdpl.osask.jp/wiki/?EssenR2 -[201?.??.??] ''Essen Rev3'' : その後迷走したバージョン -[2018.03.05] ''Essen Rev4'' : SecHack365 / セキュリティキャンプ2018で作っていたバージョン → [[EssenRev4]] -[2018.02.09] ''Essen2019-A'' : OSC2019東京・春で発表したもの(展示) → http://k.osask.jp/wiki/?p20190209b -[2019.07.16] ''ES-BASIC ver.0.0a'' : SecHack365で作っていたバージョン → [[esbasic0001]] -[2020.04.23] ''ES-BASIC ver.0.2a'' : ES-BASICのかなりまともなバージョン → [[esbasic02a]] ** (4) 説明 //-OSASK計画では、理想の環境を実現するためにOSから作り直そうと考えていました(第一世代OSASK)。 //-それが揺らいで、既存OSの上に理想の環境を構築すればいいのではないか、そのほうが労力は少なくて済むのではないか、みたいになり、世代を重ねてきました。 -あるとき私はプログラミング言語を作ろうと思いました。しかし、どんな言語にしたらいいのか事前に決められません。それで、「言語を簡単に作るための言語」を作ろうと考えました。これができれば、仕様が決まった後で短期間で作れるはずです。これが''KH-FDPL''です。 -KH-FDPLはあまりうまくいかなくて、それで作り直すことにしました。今度は、関数や構造体を宣言するように、新しい構文や新しい演算子を自由に宣言できるような言語を作ろうと考えました。それが''Essen Rev1''です。 -しかし、途中でJITコンパイラの実行速度に魅せられてしまい(笑)、言語はJITコンパイラ方式で作らねばならないと信じるようになり、次はJITコンパイラな言語を作り始めます。これが''Essen Rev2''です。 -その後、作っているうちに「うーん、作りたいのはこれじゃない・・・」というのを繰り返して、度重なる作り直しに嫌気がさして、言語開発を休止する決意をします。 -そして、今まで作ってきて事前にどういう関数があれば作りやすくなりそうかが分かってきたので、それを一度整理してみることにしました。 -そんな自作のライブラリがある程度できたところで、「試しにこれで言語を一つ作ってみるか」と気楽に作り始めたのが''ES-BASIC ver.0.0a''です。もちろんJITコンパイラです。 -これは3日間で、「とても3日で作ったとは思えない」ほどの出来栄えになり、私は気をよくしてさらに改良を続けます。 -結局、言語を作りやすくするために言語を作るのではなく、ライブラリを作ればよかったのです。やっとそれに気づけたわけです。 -ES-BASICはその後も成長を続けて、''ES-BASIC ver.0.2a''で一区切りつけることができました。この先はBASICではなく、C言語として作りたいと思っています。 ** (5) 言語に盛り込もうとしているアイデアのリスト [ES-BASIC ver.0.2b時点] |No.|アイデア|esb02b| |#01|[KH-FDPL]インタプリタで分かりやすい。|〇| |#02|[KH-FDPL]変数宣言とかをしなくてもいきなり代入できる。|〇| |#03|[KH-FDPL]オブジェクトの永続性。|△| |#04|[KH-FDPL]オブジェクトシステム(変数システム)がファイルシステムみたいになっている。|×| |#05|[KH-FDPL]独自のオブジェクト寿命システム。|△| |#06|[KH-FDPL]自己拡張可能型の文法。|△| |#07|[KH-FDPL]セキュリティ。|△| |#03|[persistent-C]オブジェクトの永続性。|△| |#08|[persistent-C]プログラムを中断しても途中から再開できる。|△| |#01|[EssenR1]対話式のインタプリタ。|〇| |#04|[EssenR1]入れ子になった構造体変数がファイルシステムの代わりになる。|×| |#03|[EssenR1]変数は永続化される。|△| |#06|[EssenR1]構文や演算子を自由に作れる言語。|△| |#09|[EssenR1]同時に複数のプログラムを動かすことができる。優先順位も付けられる。|×| |#10|[EssenR1]インラインで複数の言語を混ぜられる。|△| |#11|[EssenR2]実行速度は重要だと思うようになったのでJITコンパイラ方式を採用|〇| |#12|[EssenR4]静的型付き言語に変更|△| |#13|[EssenR4]インタプリタだけではなく、コンパイラとしても機能できる。|〇| |#09|[Essen2019-A]同時に複数のプログラムを動かすことができる。優先順位も付けられる。|×| |#14|[Essen2019-A]実行中のプログラムの変数を監視できる。|△| |#15|[Essen2019-A]実行中のプログラムの状態を保存できる。復元して再開できる。|×| |#16|[EsBasicV02]オーバーフローの検出。|〇| |#17|[EsBasicV02]行ごとに実行回数をカウントできる。|〇| |#18|[EsBasicV02]グラフィックが簡単に扱える。|〇| |#19|[EsBasicV02]自作OS上でも動く。|〇| -補足 --#03のオブジェクトの永続性については、ES-BASICではプログラムを終了しても変数が消えないというだけであり、ファイルに保存できるところまではいっていない。 --#05のオブジェクトの寿命については、ES-BASICでのサポートは全くできていないものの、自作ライブラリ上ではできるようになっているので、サポートするのは難しくない段階にきている。 --#06については、ES-BASICの機能としては拡張可能なレベルにはなっていないものの、言語処理系は簡単な仕組みになっていて、改造が容易であり、だから結果的には及第点だと思っている。 --#09の複数のプログラムを同時に動かせることについては、Essen2019-Aで実現したものの、ES-BASICには入っていない。 -まとめ --#04と#09と#15を取り込むことが長期的な課題である。 --この一連の開発の中でEssen2019-Aはやや外れた位置にあるが、これはずっと実装できていなかったアイデアを試すためのものだったからである(#09と#15)。
テキスト整形のルールを表示する