国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > Q语言:新型的数据定义语言

Q语言:新型的数据定义语言

来源:程序员人生   发布时间:2014-09-02 23:19:08 阅读次数:2598次

Q是一个数据语言,目前被限定为一个数据定义语言(DDL)。Q采用JSON/XML模式,其配备了一个专用的用于定义数据的类型系统,和一个称为“信息合约”的理论,用于程序和数据交换语言之间的互操作。 

Q可以应用在很多需要获取数据的地方,比如:

  • 要求可靠性和安全性(RESTful)的Web服务、配置文件、数据交换等
  • 验证数据输入,比如屏幕输入或HTML表单输入
  • 在接收数据时强制低级别类型向高级别转换,消弱交换语言对类型系统的限制(比如JSON没有内置的时间类型),并以安全和几乎透明的方式提升抽象的级别
  • 可在RESTful资源定义、NoSQL文档数据库中记录数据类型和模式
  • 可在异构环境中映射数据类型,使得数据库、不同的数据交换语言之间的互操作更好、更简单
示例:

如果要获取医疗系统中一些病人的诊断信息,下面显示了典型的JSON数据格式文档和采用Q语言的获取方式。 

{
  "patient": {
    "id": "27b3ceb0-7e10-0131-c9f1-3c07545ed162",
    "name": "Marcia Delgados",
    "dob": "1975-11-03"
  },
  "symptoms": [
    "Nausea",
    "Fever"
  ],
  "temperature": 39.5
}
下面是Q语言的实现方式: 

Temp = <celsius> Real( f | f >= 33.0 and f <= 45.0 )
{
  patient : {
    id   : Uuid,
    name : String( s | s.size > 0 ),
    dob  : Date( d | alive: d.year > 1890 ),
  },
  symptoms : [ String( s | s.size > 0 ) ],
  temperature : Temp
}
实现

目前Q语言已经有了一些实现: 

Q语言官网:http://www.q-lang.io/
Github地址:https://github.com/blambeau/q-lang

原文来自:ITeye

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------

上一篇 Intel陈荣坤:赢取移动市场的几个先决条件

下一篇 重新思考互联网思维 打造企业魅力发展新方向

分享到:
------分隔线----------------------------
为码而活
积分:4237
15粉丝
7关注
栏目热点
关闭
程序员人生