Serialisp

4861686276b2f990387eaef28b099db0?s=47 Niyarin
October 09, 2020

 Serialisp

Serialize特化言語

4861686276b2f990387eaef28b099db0?s=128

Niyarin

October 09, 2020
Tweet

Transcript

  1. Serializeに特化した言語 「Serialisp」 Niyarin

  2. Serialisp(未完成)の前提 JSONで表現される [“list”, 1, 2, 3] ・ClojureのCheshireを用いて書きやすくした ・常に変更時にコピーして(COW)オブジェクトを共有しない オブジェクトの比較もequal?なものだけ 循環参照もできない

    closureもJSONで表現される {“args”:[x], “code”:x, “bindings”:{}} ・ローカル変数の変更は許容しない
  3. Continuation in Serialisp Serialispは継続のシリアライズができる ・CPS(継続渡しスタイル) + closureのシリアライズ ・”強い”Scheme処理系に搭載されるような機能 Gambitとか ・活用する場面

    継続ベースのアプリケーション(Kahua)とか ※ 継続を動かすためには環境情報を一部送る必要がある
  4. Serialize copy GC 1.グローバルと現在の継続をJSONにして 好きな記憶領域に置く 2.システムを落とす & 再起動 3.記憶領域からJSONを読み込む Serialispはゴミ集めが楽

  5. Serialispと永続性 記憶領域をMongoDBにする ・PCが落ちても容易に再開できる ・適宜再起動すればゴミ集め完了 ・DBと連動するアプリケーションもDBを意識せずかける ・緩和してRAMとハイブリットなモデルにする予定

  6. Serialispを活用しよう? せっかく作った(ている)ので、実用したい Serialispは汎用向けではない (FFIと相性が悪いので) 私の妄想 ・JSON系 NOSQLクエリ言語 関数定義もDBに入っていて自由に定義できると良い ・汎用言語に組み込む JSONなので、組み込みやすい

    永続性や継続を使える ・IPLD等を使って、ブロックチェーンとしてキャッシュを持つ 人に話したら返ってきたコメントなので詳しくは知らない