主要观点:Twine-data 是一种旨在结合多种特性的二进制格式,其数据模型是有向无环图(DAG)而非树,具有共享等特性。
关键信息:
- Twine 可将 JSON 值如
{"a": ["hello", ["hello"]], "x": true}
序列化为特定字节流,如example.twine
,能看到字符串共享等特性。 - 源于计算逻辑工具工作,在 SMT-LIB 中需表示 DAG,Twine 提供指针和引用以高效在磁盘表示大 DAG。
- 被分为模式驱动和无模式的 JSON 兼容序列化格式,Twine 倾向自描述性,可用于逻辑相关工具,如证明 trace 的修剪。
重要细节: - 字符串不以引号括起而是长度前缀,如文件开头字节
0x45
是“tag 4”(字符串)和“length 5”的组合。 - 指针是文件中值的数字偏移,如
@0x0
等。 - 数组和映射不能嵌套,只能通过指针引用其他数组或映射。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。