fdpl_memo0002
の編集
https://k.osask.jp/klog/?fdpl_memo0002
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
2012_0001
2013_0001
2013_0002
2013_0003
2014_0001
2015_0001
2016_07
2016_08
2016_09
2016_10
2016_11
2017_01
2017_02
2017_03
2017_04
2017_05
2018_01
2019_01
BracketName
FormattingRules
FrontPage
Help
InterWiki
InterWikiName
InterWikiSandBox
K
KH_SARC_00
KH_dha8
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
SandBox
VC_install
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
fdpl_memo0001
fdpl_memo0002
fdpl_memo0003
fdpl_memo0004
fdpl_memo0005
fdpl_memo0006
fdpl_memo0007
fdpl_memo0008
fdpl_memo0009
fdpl_memo0010
gg02_0004
gg02_0005
gg02_0006
gg02_0007
gg02_0008
gg02_0009
https
impressions
memo0001
memo0002
oisix01
osaskology
osaskology0
osecpu_0001
osecpu_0002
p20200229a
p20200303a
p20200310a
p20200321a
p20200401a
p20200730a
p20201230a
p20220628a
p20220701a
populars
prog_0001
prog_0002
prog_0003
prog_0004
prog_0005
* KH-FDPL に関するメモ-0002 -(by [[K]], 2015.01.09) ** 2015.01.09 -とりあえず構造体や配列の代わりになる予定のKVSを作ってみた。これはオンメモリ仕様。 -65536個の要素を登録して、keyから目的のオブジェクトにアクセスするまでの時間を測ってみたら、単純な配列よりも370倍も遅かった。ちなみにkeyは整数値。 -まあ柔軟性の代償だからしょうがないかー。 -いちおう単純配列型も用意するつもり。これはkeyに0~(n-1)までの整数しか使えなくて、サイズも最初に決めたものよりも大きくはできない。 ** 2015.01.13 -こんなに遅くなるのがくやしくて少し改良したけど、全く改善しなかった。まあしょうがないかー。 -ちなみに256個の要素を登録して同じベンチマークをした場合は210倍くらい。つまりデータ件数が多いとそれなりに遅くなる。でもNが十分に大きいケースでは、O(logN)なので、基本的には筋は悪くない。 ** 2015.01.15 -スタックマシン方式を採用して、インタプリタ部ができてきた。スタックマシンにしたのは、引数が少なくなってパースがしやすいから。それ以上の理由はない。速度とかサイズとかは一切無視。そんなものはあとでいくらでも追及できる。今はコンセプトの確認が最優先。 ** 2015.01.16 -アクセス権を導入する予定。これにより自分がmallocしたものはfreeできるが、そうではないものについてはfreeはできない。オブジェクトにライトプロテクトも掛けられる。 -プログラムがmallocすると、アクセス権管理オブジェクトにそれが記録される。freeすれば消える。プログラムが終了するとfreeしてないもののリストとして得られる。親プログラムはこの「権利」を引き取るか、もしくは必要な結果だけを残し、残りはゴミとしてfreeしてしまってもよい。 -この仕組みによって、freeし忘れや間違ったfreeなどに対処する。 ** 2015.01.28 -オブジェクトの管理について、リンクカウントを内部に持って、それを増減させて0になったらメモリを解放、みたいなモデルを考えていたけど、それはやめようと思う。 -全てのオブジェクトはオブジェクトパスを必ず1つ持っていて、それはつまりオブジェクトの「実名」で、このオブジェクトパスを削除した場合は実体であるオブジェクトもメモリ解放させることにしようと思う。どれだけ他からリンクされていても、オブジェクトパスが消されたらとにかく消す。 -つまりmallocなどで確保する場合も、とにかく名前が必要になる。名前がなければそれはもはや存在できないから。でも名前を付けるのはそれなりに面倒なので、自動で名前を付ける支援機能を用意する。 -オブジェクトパスは変更できる。たとえばリンクパスのどれかをオブジェクトパスとして設定して、元のオブジェクトパスはリンクパスにするなどができる。これは権利の移譲みたいなものになる。 ** 2015.01.29 -現在検討中の仕様ではこんなことができる。 f(1.5) = 3.5; f(3.5) = 5.5; f := polynomial(f); // 2点が指定されているので、1次式を仮定. print f(2.0); -> 4.0 ** 2015.02.04 -いろいろ設計が進んでいるのでまたまとめる。 --(1)この言語は何のための言語なのですか? ---初心者がプログラミングの原理を学ぶためのものです。 ---あと性能が問題にならない状況なら、初心者じゃなくてもとても便利に使えるものです。 --(2)この言語にしかできない機能はありますか? ---ありません。基本的には、他の言語であっても手間を惜しまなければ実現できることばかりです。 ---そもそもこの言語がC言語で実装されている以上、Cでできないことはできないわけです。 --(3)この言語の特徴は何ですか? ---(a)セキュリティ重視・デバッグ支援 ---(b)言語仕様をどんどん拡張していける(はず) ---(c)速度は遅い ---(d)メモリの浪費もかなりひどい ---(e)基本的にインタプリタ ---(f)ファイルシステムと変数システムが融合している ---(g)性能的な限界はすぐにある、大規模化もメモリ不足で難しそう ---(h)実行中に変数値を変更できる、関数内容も変更できる ---(i)実行中に変数名を変更できる、関数名も変更できる --(4)面白機能を紹介してください。 ---(a)アクセス権という概念があります。ある関数がオブジェクトをnewしたとします。そのオブジェクトは誰からでも気軽にdeleteできるわけではありません。newを実行した関数か、もしくはその関数から「権限」を譲ってもらった関数だけです。これにより何を期待するのかというと、プログラムのバグで意図していないオブジェクトをdeleteする事故を減らします。 ---(b)代入ログを参照することができます。これはオブジェクトへの代入のログをつけられるということです。デバッグには重宝する予定です。 * こめんと欄 #comment
タイムスタンプを変更しない
* KH-FDPL に関するメモ-0002 -(by [[K]], 2015.01.09) ** 2015.01.09 -とりあえず構造体や配列の代わりになる予定のKVSを作ってみた。これはオンメモリ仕様。 -65536個の要素を登録して、keyから目的のオブジェクトにアクセスするまでの時間を測ってみたら、単純な配列よりも370倍も遅かった。ちなみにkeyは整数値。 -まあ柔軟性の代償だからしょうがないかー。 -いちおう単純配列型も用意するつもり。これはkeyに0~(n-1)までの整数しか使えなくて、サイズも最初に決めたものよりも大きくはできない。 ** 2015.01.13 -こんなに遅くなるのがくやしくて少し改良したけど、全く改善しなかった。まあしょうがないかー。 -ちなみに256個の要素を登録して同じベンチマークをした場合は210倍くらい。つまりデータ件数が多いとそれなりに遅くなる。でもNが十分に大きいケースでは、O(logN)なので、基本的には筋は悪くない。 ** 2015.01.15 -スタックマシン方式を採用して、インタプリタ部ができてきた。スタックマシンにしたのは、引数が少なくなってパースがしやすいから。それ以上の理由はない。速度とかサイズとかは一切無視。そんなものはあとでいくらでも追及できる。今はコンセプトの確認が最優先。 ** 2015.01.16 -アクセス権を導入する予定。これにより自分がmallocしたものはfreeできるが、そうではないものについてはfreeはできない。オブジェクトにライトプロテクトも掛けられる。 -プログラムがmallocすると、アクセス権管理オブジェクトにそれが記録される。freeすれば消える。プログラムが終了するとfreeしてないもののリストとして得られる。親プログラムはこの「権利」を引き取るか、もしくは必要な結果だけを残し、残りはゴミとしてfreeしてしまってもよい。 -この仕組みによって、freeし忘れや間違ったfreeなどに対処する。 ** 2015.01.28 -オブジェクトの管理について、リンクカウントを内部に持って、それを増減させて0になったらメモリを解放、みたいなモデルを考えていたけど、それはやめようと思う。 -全てのオブジェクトはオブジェクトパスを必ず1つ持っていて、それはつまりオブジェクトの「実名」で、このオブジェクトパスを削除した場合は実体であるオブジェクトもメモリ解放させることにしようと思う。どれだけ他からリンクされていても、オブジェクトパスが消されたらとにかく消す。 -つまりmallocなどで確保する場合も、とにかく名前が必要になる。名前がなければそれはもはや存在できないから。でも名前を付けるのはそれなりに面倒なので、自動で名前を付ける支援機能を用意する。 -オブジェクトパスは変更できる。たとえばリンクパスのどれかをオブジェクトパスとして設定して、元のオブジェクトパスはリンクパスにするなどができる。これは権利の移譲みたいなものになる。 ** 2015.01.29 -現在検討中の仕様ではこんなことができる。 f(1.5) = 3.5; f(3.5) = 5.5; f := polynomial(f); // 2点が指定されているので、1次式を仮定. print f(2.0); -> 4.0 ** 2015.02.04 -いろいろ設計が進んでいるのでまたまとめる。 --(1)この言語は何のための言語なのですか? ---初心者がプログラミングの原理を学ぶためのものです。 ---あと性能が問題にならない状況なら、初心者じゃなくてもとても便利に使えるものです。 --(2)この言語にしかできない機能はありますか? ---ありません。基本的には、他の言語であっても手間を惜しまなければ実現できることばかりです。 ---そもそもこの言語がC言語で実装されている以上、Cでできないことはできないわけです。 --(3)この言語の特徴は何ですか? ---(a)セキュリティ重視・デバッグ支援 ---(b)言語仕様をどんどん拡張していける(はず) ---(c)速度は遅い ---(d)メモリの浪費もかなりひどい ---(e)基本的にインタプリタ ---(f)ファイルシステムと変数システムが融合している ---(g)性能的な限界はすぐにある、大規模化もメモリ不足で難しそう ---(h)実行中に変数値を変更できる、関数内容も変更できる ---(i)実行中に変数名を変更できる、関数名も変更できる --(4)面白機能を紹介してください。 ---(a)アクセス権という概念があります。ある関数がオブジェクトをnewしたとします。そのオブジェクトは誰からでも気軽にdeleteできるわけではありません。newを実行した関数か、もしくはその関数から「権限」を譲ってもらった関数だけです。これにより何を期待するのかというと、プログラムのバグで意図していないオブジェクトをdeleteする事故を減らします。 ---(b)代入ログを参照することができます。これはオブジェクトへの代入のログをつけられるということです。デバッグには重宝する予定です。 * こめんと欄 #comment
テキスト整形のルールを表示する