Essen4
の編集
https://khfdpl.osask.jp:443/wiki/?Essen4
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
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 #4 -(by [[K]], 2016.10.21) ** Essenの変数システム -(1) --CやC++などの言語で、 abc.def.ghi = 3; みたいに書くことはある。 --これはファイルパスで abc/def/ghi.txt みたいに指定するのととても似ている気がする。 --だったら、変数をファイル代わりにして、OSからファイルシステムを取っ払ってしまえばいいのではないか? --そして変数は言語を終了しても、電源を切っても、値が保持されるようにすればいいのではないか? -(2) --そもそも今は「情報を記憶させる場所」が複数ある。 ---変数、ファイル、環境変数 --このどれにするかをプログラマに悩ませるなんてなんか間違っていないか? --全部変数でいいじゃないか。変数が永続的で他のプログラムなどからも参照できるのなら、ファイルとかなくたって困らないんだ! -(3) --最新の構想では、Essenでは小カッコと角カッコとを区別しないので、以下のどちらの書き方でもディレクトリ型を記述できます。 --ディレクトリ型というのは、配列と構造体を混ぜたようなものです。別の言い方をするとPythonのリスト型と辞書型を混ぜたようなものです。 a = (1 2 3) b = [1 2 3] c = (1, 2, 3) // このようにカンマで区切ることもできる d = (abc:1 def:2) // こう書けば構造体 e = (abc:1 def:2 3 4) // こう書けば構造体と配列が混在 → e.abc = 1 e.def = 2 e[0] = 3 e[1] = 4 f = [(1 2 3) (4 5 6)] // 入れ子にもできます 角カッコだと見やすいかな?(小カッコでももちろんOKです) --簡単に配列や構造体が書けるのは素晴らしいことだけど、PythonやRubyではすでにできることなので、Essenの優位点にはなりません。 ** Essenの優位点 -コード片オブジェクト(コードブロック)を簡単に関数に渡せる if (a == 0) { b = 0 } `else { b = 1 } // この b = 0 や b = 1 の部分はコード片としてifという関数に渡される -新しい演算子を定義できる、既存の演算子を変えられる -新しい制御構文を定義できる、既存の制御構文を変えられる -Essenは複数のウィンドウを持っていてそれらを個別に操作できるような想定だけど、ウィンドウ1でプログラムを実行し、ウィンドウ2でプログラムの変数に対してprintすると、変数が変わっていく様子が見られる --デバッガなどがなくてもそこそこのデバッグができる --見るだけではなく値を変更することもできる -インラインで既存言語のソースコードを書くことができる(関数単位) --それをEssenから呼び出せる --Essenは実行速度が速い言語ではないので、部分的にCなどを併用して実用的な速度にすることを想定 -処理系が異様に小さい(予定) --[[K]]が作るので、もはや「お約束」です! -変数が永続的なので、プログラムが終了した後でも、定義した関数も削除しなければずっと残っていていつでも使えるし、変数も値を確認できる --プログラムを実行するたびにローカルディレクトリを作りますので、ローカルで使っている限りは衝突しない --変数はファイルのように、コピー、移動、削除、名前の変更などができる --f = function(a, b, c) { ... } とやって実行した後にはfは関数になるけど、一度そうなった後はプログラムを削除してしまってもfには設定が残るので、そのまま使い続けられる * こめんと欄 #comment
タイムスタンプを変更しない
* プログラミング言語 Essen #4 -(by [[K]], 2016.10.21) ** Essenの変数システム -(1) --CやC++などの言語で、 abc.def.ghi = 3; みたいに書くことはある。 --これはファイルパスで abc/def/ghi.txt みたいに指定するのととても似ている気がする。 --だったら、変数をファイル代わりにして、OSからファイルシステムを取っ払ってしまえばいいのではないか? --そして変数は言語を終了しても、電源を切っても、値が保持されるようにすればいいのではないか? -(2) --そもそも今は「情報を記憶させる場所」が複数ある。 ---変数、ファイル、環境変数 --このどれにするかをプログラマに悩ませるなんてなんか間違っていないか? --全部変数でいいじゃないか。変数が永続的で他のプログラムなどからも参照できるのなら、ファイルとかなくたって困らないんだ! -(3) --最新の構想では、Essenでは小カッコと角カッコとを区別しないので、以下のどちらの書き方でもディレクトリ型を記述できます。 --ディレクトリ型というのは、配列と構造体を混ぜたようなものです。別の言い方をするとPythonのリスト型と辞書型を混ぜたようなものです。 a = (1 2 3) b = [1 2 3] c = (1, 2, 3) // このようにカンマで区切ることもできる d = (abc:1 def:2) // こう書けば構造体 e = (abc:1 def:2 3 4) // こう書けば構造体と配列が混在 → e.abc = 1 e.def = 2 e[0] = 3 e[1] = 4 f = [(1 2 3) (4 5 6)] // 入れ子にもできます 角カッコだと見やすいかな?(小カッコでももちろんOKです) --簡単に配列や構造体が書けるのは素晴らしいことだけど、PythonやRubyではすでにできることなので、Essenの優位点にはなりません。 ** Essenの優位点 -コード片オブジェクト(コードブロック)を簡単に関数に渡せる if (a == 0) { b = 0 } `else { b = 1 } // この b = 0 や b = 1 の部分はコード片としてifという関数に渡される -新しい演算子を定義できる、既存の演算子を変えられる -新しい制御構文を定義できる、既存の制御構文を変えられる -Essenは複数のウィンドウを持っていてそれらを個別に操作できるような想定だけど、ウィンドウ1でプログラムを実行し、ウィンドウ2でプログラムの変数に対してprintすると、変数が変わっていく様子が見られる --デバッガなどがなくてもそこそこのデバッグができる --見るだけではなく値を変更することもできる -インラインで既存言語のソースコードを書くことができる(関数単位) --それをEssenから呼び出せる --Essenは実行速度が速い言語ではないので、部分的にCなどを併用して実用的な速度にすることを想定 -処理系が異様に小さい(予定) --[[K]]が作るので、もはや「お約束」です! -変数が永続的なので、プログラムが終了した後でも、定義した関数も削除しなければずっと残っていていつでも使えるし、変数も値を確認できる --プログラムを実行するたびにローカルディレクトリを作りますので、ローカルで使っている限りは衝突しない --変数はファイルのように、コピー、移動、削除、名前の変更などができる --f = function(a, b, c) { ... } とやって実行した後にはfは関数になるけど、一度そうなった後はプログラムを削除してしまってもfには設定が残るので、そのまま使い続けられる * こめんと欄 #comment
テキスト整形のルールを表示する