Folia
← 返回头版

数据表示的形状:编程系统中的一致性问题

编程系统中数据的表示方法存在根本性的不一致性问题1。在Rust中,同一数据需要在代码、内存表示和打印输出中处理三种不同的记号方式1。JavaScript中的数据表示同样不统一:HashMap键在console.log中显示为字符串,但在Map对象中保持原类型1。相比之下,Clojure的EDN(Extensible Data Notation)设计使代码表示与打印表示完全一致,体现了统一记号的优势1。

为了改善这一状况,设计者们探索了多种解决方案1。分层设计方法(如Chrome HTML检查器所示)可以在保留文本表示的同时提供结构化GUI1。在标识符的选择上,ID相比指针具有语言独立性、可移植性和确定性的优点1。Unison编程语言通过采用全局唯一ID加本地名称的方式(name#id)平衡了可读性和稳定性1。此外,在数据模型中使用树形结构和ID来模拟图结构可以避免循环引用问题1。

Unison对"代码即数据"这一理念的处理最为深入,是唯一严肃对待此原则的编程语言,将代码存储为内容寻址数据库中的数据结构1。这种方法为统一数据和代码的表示提供了新的思路。


来源

  1. Hacker NewsThe Shape of Data (2022)

评论