$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Serialisp
Search
Niyarin
October 09, 2020
Programming
1
630
Serialisp
Serialize特化言語
Niyarin
October 09, 2020
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
130
bel lispの紹介
niyarin
0
650
nanopass-compiler-frameworkを使ってみました
niyarin
0
380
Gorgos-parser-combinator-written-in-scheme
niyarin
0
350
outputting-beautiful-s-expression
niyarin
0
340
Mongo DBとS式検索
niyarin
0
270
goodbye-python-repl
niyarin
0
320
SchemeのEphemeronとWeak Pairの説明
niyarin
0
900
red-paren-scheme-rev-macro.pdf
niyarin
0
380
Other Decks in Programming
See All in Programming
[FlutterKaigi2024] Effective Form 〜Flutterによる複雑なフォーム開発の実践〜
chocoyama
1
4k
急成長期の品質とスピードを両立するフロントエンド技術基盤
soarteclab
0
800
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
120
Jakarta EE meets AI
ivargrimstad
0
970
Djangoの開発環境で工夫したこと - pre-commit / DevContainer
hiroki_yod
1
670
CSC509 Lecture 14
javiergs
PRO
0
130
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
0
3.1k
React への依存を最小にするフロントエンド設計
takonda
21
8.9k
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.3k
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
120
Develop iOS apps with Neovim / vimconf_2024
uhooi
1
320
CSC305 Lecture 25
javiergs
PRO
0
120
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
32
6.3k
A Tale of Four Properties
chriscoyier
157
23k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
420
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Speed Design
sergeychernyshev
25
650
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
RailsConf 2023
tenderlove
29
920
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
110
49k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Code Reviewing Like a Champion
maltzj
520
39k
Transcript
Serializeに特化した言語 「Serialisp」 Niyarin
Serialisp(未完成)の前提 JSONで表現される [“list”, 1, 2, 3] ・ClojureのCheshireを用いて書きやすくした ・常に変更時にコピーして(COW)オブジェクトを共有しない オブジェクトの比較もequal?なものだけ 循環参照もできない
closureもJSONで表現される {“args”:[x], “code”:x, “bindings”:{}} ・ローカル変数の変更は許容しない
Continuation in Serialisp Serialispは継続のシリアライズができる ・CPS(継続渡しスタイル) + closureのシリアライズ ・”強い”Scheme処理系に搭載されるような機能 Gambitとか ・活用する場面
継続ベースのアプリケーション(Kahua)とか ※ 継続を動かすためには環境情報を一部送る必要がある
Serialize copy GC 1.グローバルと現在の継続をJSONにして 好きな記憶領域に置く 2.システムを落とす & 再起動 3.記憶領域からJSONを読み込む Serialispはゴミ集めが楽
Serialispと永続性 記憶領域をMongoDBにする ・PCが落ちても容易に再開できる ・適宜再起動すればゴミ集め完了 ・DBと連動するアプリケーションもDBを意識せずかける ・緩和してRAMとハイブリットなモデルにする予定
Serialispを活用しよう? せっかく作った(ている)ので、実用したい Serialispは汎用向けではない (FFIと相性が悪いので) 私の妄想 ・JSON系 NOSQLクエリ言語 関数定義もDBに入っていて自由に定義できると良い ・汎用言語に組み込む JSONなので、組み込みやすい
永続性や継続を使える ・IPLD等を使って、ブロックチェーンとしてキャッシュを持つ 人に話したら返ってきたコメントなので詳しくは知らない