欢迎光临散文网 会员登陆 & 注册

DCIR:用于数据交换语言的中间代表

2021-12-30 16:09 作者:程安絮  | 我要投稿

DCIR:用于数据交换语言的中间代表

所谓数据交换语言就是像JSON、XML、YAML这样的用于在程序与程序之间、程序与用户之间进行数据交换的语言;传统的数据交换方式普遍都采用这些数据交换语言来实现。

但是传统的数据交换方式有两大弊端:

1.使用不同数据交换语言的程序之间无法交换数据。

2.为了方便人工编辑,数据交换语言都是可读性很强的文本形式,这种形式不够底层,程序解析起来很麻烦。


为了解决这些弊端,我从LLVM中得到灵感——为什么不设计一种用于数据交换语言的中间代表(Intermediate Representation)?

我将这种IR命名为DCIR(Data Communicating Intermediate Representation)。

DCIR要足够底层,使程序可以很方便地对它进行读写,同时所有数据交换语言都要能够在它们自己和DCIR之间自由转换。

这样一来,所有程序只要能够支持DCIR,就相当于支持了所有的数据交换语言,而且还省去了解析数据交换语言的麻烦。

当然,还要开发出一套工具用来在各种数据交换语言和DCIR之间进行相互转换。


DCIR的初步设计

为了照顾种类繁多的字符编码,DCIR的字符串要用单独的字符串文件保存,非字符串内容则用数据文件保存。


字符串文件

字符串文件的命名格式为name.dcir-str-code

其中name是源文件名,比如从config.json文件转换来的字符串文件name就是configcode是字符串编码格式名,比如采用UTF-8编码格式保存的字符串文件名就是config.dcir-str-utf-8

一个DCIR中可以有多个采用不同编码格式的字符串文件。

字符串文件中的每个字符串都以\0结尾,通过由0开始的索引访问。


数据文件

数据文件的命名格式为name.dcir-data



未完待续……


DCIR:用于数据交换语言的中间代表的评论 (共 条)

分享到微博请遵守国家法律