Representing Heterogeneous Data (2023)
8 months ago
- #type-systems
- #game-development
- #programming-languages
- 作者正在将一种动态类型的游戏脚本语言转换为静态类型,重点关注简洁性和熟悉度。
- 异构数据表示是一个关键问题,涉及可选数据和不同形式的数据处理。
- 讨论了处理异构数据的多种方法:空值、变体类型、无标签联合、求和类型以及子类型。
- 作者倾向于在其语言中使用求和类型,但发现模式匹配语法对于命令式语言不够直观。
- 提出了一种受Pascal变体记录启发的替代方案,允许特定情况字段并通过运行时检查确保安全性。
- 该方案将共享字段和特定情况字段结合在单一结构中,平衡了简洁性与安全性。
- 考虑了流式类型化,但认为其过于复杂,不符合该语言追求简单可预测行为的目标。