persistent_C
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* persistent-C のページ
-(by [[K]], 2016.02.17)
** 基本的なアイデア
-(1) C言語を少しだけ拡張し、以下の構文を使えるようにしま...
persistent int a; // こうすると、変数aは「永続変数」にな...
--永続変数は、persistent_save(0); や persistent_load(0); ...
--基本的にはこれだけ。
-(2) この拡張によって、以下のことができるようになります。
--(2-1) ゲームにおけるhigh-scoreなどの処理が非常に簡単に...
--(2-2) 処理を一度中断しても再開できるようなプログラミン...
[例]
persistent int sum = 0, i = 0;
persistent_load(0);
for (; i <= 100; i++) {
sum += i;
persistent_save(0);
}
--(2-3) データ書き換えのundoができる。
---つまり、変数に値を代入している途中で、「あ、やっぱり元...
---ただし永続変数以外は戻らないけど。
--(2-4) 永続変数を後から参照できる。
---簡単な外部ツールを使うことで、永続変数の値をいつでも確...
---プログラムが実行中でも変数を参照できる。
---なんなら値を書き換えることもできる。
---デバッグには非常に有効。
--(2-5) 他のプログラムの永続変数にアクセスできる。
---これでプログラム間の通信をすることができる。
---高度なデバックにも使えるかも。
-(3) この拡張は便利な反面、バグの温床やセキュリティホール...
--それを片っ端から列挙して、一緒に考えましょう。
--どうすれば、便利と安全が共存できますか?
--さらに拡張するとしたら、どんな機能を加えますか?
--(このセクションはセキュリティキャンプ2016を想定してい...
-(4) このpersistentを使って、適当なプログラムを作って遊び...
--blikeライブラリも提供するので、C言語からグラフィックや...
---blikeライブラリは、BASICのグラフィック命令やINKEY的な...
--(このセクションはセキュリティキャンプ2016を想定してい...
-(5) 補足
int persistent_save(double sec); // sec秒以上の間隔をあ...
// あまり高い頻度で保存するとさすがに遅くなるので、...
// 戻り値が-1なら保存を実行した。0なら高頻度だった...
int persistent_load(double sec); // 読み込む。secや戻り...
--ポイントとしては、こんな簡単な拡張で、こんなにできるこ...
--だから柔軟な発想を!
--・・・そして課題も増える。しかし課題があっても簡単には...
** 仕様と実装
-persistent-C は仕様というかコンセプトなので、様々な実装...
-さまざま実装が試みられて、良いものが生き残ればよい。
-[[K]]もひとまず簡易な実装を作るけれど、それはKHPCと名乗...
* こめんと欄
#comment
終了行:
* persistent-C のページ
-(by [[K]], 2016.02.17)
** 基本的なアイデア
-(1) C言語を少しだけ拡張し、以下の構文を使えるようにしま...
persistent int a; // こうすると、変数aは「永続変数」にな...
--永続変数は、persistent_save(0); や persistent_load(0); ...
--基本的にはこれだけ。
-(2) この拡張によって、以下のことができるようになります。
--(2-1) ゲームにおけるhigh-scoreなどの処理が非常に簡単に...
--(2-2) 処理を一度中断しても再開できるようなプログラミン...
[例]
persistent int sum = 0, i = 0;
persistent_load(0);
for (; i <= 100; i++) {
sum += i;
persistent_save(0);
}
--(2-3) データ書き換えのundoができる。
---つまり、変数に値を代入している途中で、「あ、やっぱり元...
---ただし永続変数以外は戻らないけど。
--(2-4) 永続変数を後から参照できる。
---簡単な外部ツールを使うことで、永続変数の値をいつでも確...
---プログラムが実行中でも変数を参照できる。
---なんなら値を書き換えることもできる。
---デバッグには非常に有効。
--(2-5) 他のプログラムの永続変数にアクセスできる。
---これでプログラム間の通信をすることができる。
---高度なデバックにも使えるかも。
-(3) この拡張は便利な反面、バグの温床やセキュリティホール...
--それを片っ端から列挙して、一緒に考えましょう。
--どうすれば、便利と安全が共存できますか?
--さらに拡張するとしたら、どんな機能を加えますか?
--(このセクションはセキュリティキャンプ2016を想定してい...
-(4) このpersistentを使って、適当なプログラムを作って遊び...
--blikeライブラリも提供するので、C言語からグラフィックや...
---blikeライブラリは、BASICのグラフィック命令やINKEY的な...
--(このセクションはセキュリティキャンプ2016を想定してい...
-(5) 補足
int persistent_save(double sec); // sec秒以上の間隔をあ...
// あまり高い頻度で保存するとさすがに遅くなるので、...
// 戻り値が-1なら保存を実行した。0なら高頻度だった...
int persistent_load(double sec); // 読み込む。secや戻り...
--ポイントとしては、こんな簡単な拡張で、こんなにできるこ...
--だから柔軟な発想を!
--・・・そして課題も増える。しかし課題があっても簡単には...
** 仕様と実装
-persistent-C は仕様というかコンセプトなので、様々な実装...
-さまざま実装が試みられて、良いものが生き残ればよい。
-[[K]]もひとまず簡易な実装を作るけれど、それはKHPCと名乗...
* こめんと欄
#comment
ページ名: