头版Folia Daily Briefing
← 返回头版
科技互联网

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

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

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

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


数据表示编程语言设计数据记号系统Clojure软件工程

来源

  1. Hacker NewsThe Shape of Data (2022)