科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 6108 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2009-06-11
方兴东
方兴东
发短消息
相关词条
戴夫·海厄特
戴夫·海厄特
最佳编程语录大全
最佳编程语录大全
程序员笑话大全
程序员笑话大全
下一代程序员
下一代程序员
女程序员
女程序员
彼得·诺维格
彼得·诺维格
Russ Cox
Russ Cox
15名程序员界性感的奇葩
15名程序员界性感的奇葩
Mike Kruzeniski
Mike Kruzeniski
Jeff Fong
Jeff Fong
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

Arthur Whitney 发表评论(0) 编辑词条

Arthur Whitney is a computer scientist most notable for developing the APL-inspired programming languages A+ and K. He also wrote the initial prototype of J, a terse and macro-heavy single page of code in one afternoon, which then served as the model for J implementor Roger Hui.

He studied at the University of Toronto and Stanford and is the CEO and co-founder of Kx Systems.

目录

至快、至简、至强: Arthur Whitney的kdb+编辑本段回目录

March 1st, 2009 kdb+是一个可驻留内存、基于列的数据库产品(in-memory、column-based database)。Arthur Whitney的Kx公司于2003年推出kdb+。

(图)Arthur WhitneyArthur Whitney

kdb+目的单纯而明确:一切为了以最快速度分析最海量金融数据。Arthur Whitney深谙机构投资者对海量数据处理的需要,将kdb+铸造成至快、至简、至强的终极武器。

至快
kdb+可以在1秒钟内处理百万条记录。

将kdb+数据库部署在局域网的时候,如果网速没有千兆,很容易成为kdb+的拖累。

至简
1、语言简洁:kdb+源自最早的数组语言APL,继承了APL至简的编程风格。

2、使用简单:kdb+支持SQL标准。Arthur Whitney将APL的简洁与SQL的易懂融为一体,形成Q语言。大大降低新手入门的难度。

3、程序精简:下载的kdb+压缩文件只有183K。解压缩即可使用。(也是绿色软件:)

至强
1、历史数据与即时数据无缝结合。可轻松支持数G、数T的数据。

2、纯正数组语言,操作时间序列得心应手。

3、Arthur Whitney与APL的发明者共事多年、又亲手帮助Morgan Stanley和UBS原创相关定量系统,千锤百炼之后建立自己的公司。Arthur对定量投资的需求理解至深。kdb+可谓其巅峰之作。

学习kdb+的Q语言,不由联想到文艺复兴时期安格尔历经二十六年、终于在七十六岁高龄才完成的少女画作。清水芙蓉,纯然没有雕饰。(经网友提醒,删除安格尔画作,以免被当作河蟹一锅炖了。)

又或者象东方的禅宗。不立文字、直指人心。

谨以此文祝贺zwz大侠的QDataStore(kdb+/Q Datastore plugin for RightEdge 2)发布。

Q语言初学者开门篇 编辑本段回目录

      声明:本系列文章全部参考自官方教程,由于缺乏中文资料而且本人E文实在太菜,对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程,

(图)Fred Brooks, Larry Breed, Joey Tuttle, Arthur Whitney, Eugene McDonnell

左起:Fred Brooks, Larry Breed, Joey Tuttle,

Arthur Whitney, Eugene McDonnell

欢迎大家一起学习讨论。
hhttps://code.kx.com/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous

历史背景:
Q语言跟它的数据库kdb+是由同个作者Arthur Whitney开发的,发布于 2003年。Q语言天生地具体处理大数理量的能力,同时它也是kdb+数据库的查询语言,类似于SQL。

KDB+介绍:
KDB+ 是一种适合用于处理大数量的数据库服务器,和kdb一样被设计于用来高速地抓取、分析和存储数据。主要应用于金融软件的开发,区别于传统的关系型数据库,主要优势是挖掘快速发展的硬件的潜力,我想缺点是对硬件性能要求比较苛刻。
刚刚接触KDB+数据库,google了半天没找到一丁点中文资料,加上英文太菜,或许对它的理解有误,不过暂时先这样定义,等有了更好的答案了再来Update.
打开地址 http://www.kx.com/developers/software.php, 然后选择点击"Personal Developer kdb+ Software License Agreement"获取一个免费的32位版本,才100多K的东西。

特点:
◇内存数据库(In Memory Database)
         把数据全部放置于内存中,好在现在内存是越来越白菜价了。
◇解释型语言(Interpreted)
◇有序列表(Ordered Lists)
         实现高速处理数据的关键,区别于传统数据库。
◇赋值顺序(Evaluation Order)
◇面向表编程(Table Oriented)
         放弃了经典的OO,取而代之的是一种更加复杂的思想,基于表得字典的编程。
◇面向列编程(Column Oriented)
◇强类型(Types):
      强类型,动态检测    (Q is a strongly typed, dynamically checked language)
◇空值(Null Values):
      每种类型都有自己的空值 (Types have separate null values. )
   

开始:
安装Kdb+ 数据库服务器,直接解压到C盘根目录下就OK了,如果希望放到其它目录下需要添加环境变量QHOME到q目录;
进入到程序目录通过"q"命令启动一个q会话。

变量:
Q语言声明变量只需要使用一个变量名跟一个值,格式为“变量名:值”,解释器会根据值的类型给变量赋予相应的类型,需要注意的是赋值符号是":"而不像大多数语言所使用的"=".
e.g.q)a:20
变量的命名规范基本与匈牙利命名规范差不多,但有一点需要注意的是禁止使用下划线,就算是非使用不可的情况下也不应该把下划线放在最后一个字符

可能使用一个斜杆(/)给程序添加注释,当然使用两杆(//)也是不会报错的
程序的执行顺序是从右到左
e.g. q)b:1+a:42
q)b
43
今天的开门篇就介绍到这里,由于文中一些概念还没完全理解清楚,有很多表达不到位的地方经过后期的学习我会尽量补上。
下一节将介绍Q语言的基本数据类型。

(图)Kx2007 International Users ConferenceKx2007 International Users Conference

KDB+ database介绍收藏
 注:这里的很多内容是参考kx system公司的资料翻译过来的,所以我放在翻译栏.(小弟英语也不是太好,请不要笑话我,其中有些我实在无法组织出正确的语句就把原文贴上来了)

1:有关q的发展

 Q编程语言和kdb+数据库是由Arthur Whitney开发出来的,在2003年由Kx Systems公司发布,q的设计目标为展示,速度,及效率.此设计的折衷考虑是简洁,精练例如,C++ Java, or C#,结合SQL.While the q programming gods revel in programs resembling an ASCII core dump, this manual is for the rest of us.

 Q 从APL语言发展而来,APL是由Kenneth Iverson于1950年在哈佛发明,第一个面向数学符号的语言,APL成为计算机语言是当它被IBM介绍为向量编程语言,意味着它可以在一次单独的操作中处理一个列表的数据.它在金融及其它需要大批量数据处理的工业取得成功.

     自从q语言作为向量处理语言出现以来,它在复杂的计算及大的数据列上表现出很好的性能,q语言的新表现在其处理出现在关系范例的的大列数据效率很高.它的语法允许select表达式,这各SQL92标准相像,its collection of built-in functions forms a rich superset of those in SQL 92.

 在q语言中也存在一此LISP的影子.事实上,q的基础数据结构是list.它的符号和术语是不同的,但the functionality is there and is arguably simpler,For those so inclined, writing compilers is a snap in q.

 Q的DNA序列也表现出了其作为功能编程语言的影响. While q is not purely functional, it is arguably as functional as C++, Java and C# are object-oriented.

  2:体系结构

 一个精通q语言的开发员的编程思想与传统的面各关系型数据库的开发员不一样,在下文中"冗长的编程(高级语言)"指C++,Java 和 C#.为了将你带入到正确的思想轨道,我们总结了一些潜在的,While q is not purely functional, it is arguably as functional as C++, Java and C# are object-oriented.给q 的初学者.

 在高级数据库程序语言中主要有以下几类:

  业务对象必须映射为一个完全不同的表现形式,例如,表,为了持久化.它在对象-关系的正确转移了做出了很大的努力.如EJB

业务对象为了传输必须映射到另一个表现形式,通常为一些二进制字节码,或者是XML格式

履行数据的操作如选择和集合最好是在数据库据服务器的存储过程中完成.复杂的数字计算最好是在应用服务器而不是在数据库服务器上.

   

很多的高级语言是用来得到正确的不同的表现形式,同时很多高级语言的代码是用来排列资源和同步不同的表现形式.这些问题在q语言中不会出现.

内存数据库:一种看KDB+数据库的形式为它是一个内存数据库并且持久备份的.实体格式被保存在内存实质上和存储在硬盘或者是传输中的一样.当数据被q在内存中操作的时候,没有分开存储过程的语言.这有一点类似ADO.NET中不连贯的记录集,但是在建造表对象和用来在硬盘上操作表的数据之间没有分离.

解释型语言:q是解释型语言而不是编译型语言.在执行中,数据和函数存活于内存的工作站中.Iterations of the development cycle tend to be quick because all information needed to debug is available in the workspace.q程序将作为一个脚本存储及执行.一般地,q函数能当做一个字符串创建出来,也可以动态地执行,所以它能编写出自修改的代码.

(图)Arthur WhitneyArthur Whitney

顺序的Lists:因为经典的SQL为建立在无序集上的,在表中的行顺序是没有定义的.在q中,顺序的lists是所有non-trivial数据结构的基础,所有表中的行有顺序.因此这使得处理大量的时间序列的数据非常容易也非常地快.

   执行顺序:当q是从左到右写的时候,表达式将会从右到左执行,ad the q gods prefer,右的左边,意味着左边的函数或者是操作符将执行其右边的.没有操作符优先的说法,所以很少需要圆括号是解决操作优先级的问题.

 面向表的:放弃那些"进来"的对象,为了和上面提到的几种语言对比,q语言没有实现像面向对象编程的类一样,也没有继承,虚函数.取而代之的是,q语言建立了一个复杂的通过建造和映射顺序lists,实际上在数学里也叫序列或者是向量.在q语言中higher-lever数据的建造操作为字典和表.一个函数可以在一个工作区内声明为全局的,或者在另一个函数中匿名定义,对于函数来说变量可以是全局也可以是局部的.

 面向列的:SQL表存储数据在行同时操作的是行或是行的某一个域为单位的数据,q语言存储数据到表的时候是采取列的形式,操作的时候也是操作整个列向量.

 类型:q是强类型的,动态的,检查性的语言,但它的类型比他们类型语言来说少些麻烦,每一个变量都有一个很好定义类型的值,同时类型促使其操作的动态性.一个变量的类型是没有明确定义的,变量类型的名反射出了指派到它上面的值.一个存储了同类型的lists是不允许转换到其它类型的.

 空值:在经典SQL中,空值指示丢失的数据或者是任何类型.在q语言中,不同类型有不同的空值.无穷值或者是空值能参与数学计算和其他有合理结果的运算.

 完整的I/O:I/O是通过句柄来作为功能窗口与外界通讯的.一旦一个句柄被建立读可以得到句柄的值,通过句柄也可以写值.

参考文献编辑本段回目录

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: Arthur Whitney

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。