h*h 发帖数: 27852 | 1 王垠这个程序不是一般应用程序,用的也不是常用语言。
程序的注释不是让完全不懂那门语言和算法逻辑的人看懂程序的。说什么过不了你们公
司code review的,你们公司用这语言吗?
真要看他的应用程序风格,看他的java程序 |
r***e 发帖数: 10135 | 2 劈头盖脸扔过来一堆没主食的代码,谁能看得懂
得按照八股文的格式把背景动机方法实验都描述清楚才合格啊
这家伙缺乏基本得科研训练啊。。。怪不得喜欢当码农
【在 h*h 的大作中提到】 : 王垠这个程序不是一般应用程序,用的也不是常用语言。 : 程序的注释不是让完全不懂那门语言和算法逻辑的人看懂程序的。说什么过不了你们公 : 司code review的,你们公司用这语言吗? : 真要看他的应用程序风格,看他的java程序
|
w*********e 发帖数: 6093 | 3 不会茴字的四种写法别哔哔中文。
语法是文学最重要最核心的东西。
LoL |
h*h 发帖数: 27852 | 4 发信人: blaze (狂且), 信区: Programming
标 题: Re: 王垠的40行代码是干嘛的
发信站: BBS 未名空间站 (Fri May 20 19:51:38 2016, 美东)
我来用中文给大家解释一下吧。
王垠的代码在数学上严格的定义了goto(callcc in FP)的形式语义。这个结果的确是经
过了多年研究才得到的。在此之前,人们认识到有goto这个东西,也知道怎么用,但是
没有严格的数学模型来描述其语义。所以goto是停留在炼金术的阶段。有了这个数学定
义,goto才进入了化学的殿堂。如果王垠一周内通过全自研得到了goto的形式语义定义
,那的确不是一般人能做到的。至少我做不到。
发信人: hci (海螺子), 信区: Programming
标 题: 王垠的40行代码是干嘛的
发信站: BBS 未名空间站 (Thu May 19 15:26:35 2016, 美东)
https://github.com/yinwang0/lightsabers/blob/
6a66c294d4c4217efebfdeae18ee4697d802f79e/cps.ss
他那段代码的功能,是自动把正常风格的代码转换成CPS风格(Continuation-passing
style)的代码,所以叫CPS transformer。
CPS是啥? 就是一种编程风格,每个函数结尾,不是直接返回结果,而是调用并把结果
传给一个“下一步”函数。当然这个“下一步”函数,也是从外面传进来的,所以CPS
风格的函数要比正常风格的要多一个参数。
CPS有啥用?很多编译器需要。代码转成CPS之后,很多事机器更容易干。
比如说,你想发明一个高大上的能自动作贝叶斯推理的编程语言,就是现在前沿的所谓
叫probablistic programming language的东东,这种语言的执行不是常见的按代码顺
序执行,而是基于对一些随机变量抽样的结果来决定下一步作什么。要实现这样的一个
语言,一个容易的办法,就是把常规代码先转成CPS风格的,在每次调用“下一步”函
数之前作抽样。
另外一个例子,比如golang的这种异步功能,也可以用CPS实现。比如Clojure的core.
async库,就是用类似于CPS但更简单的一种叫Static single assignment form的方法
来实现的。
总之,如果想要打破一般程序执行的方式来干点啥特别的事情,CPS就能用上。 |
L****8 发帖数: 3938 | 5 说王银不行的都是一群IT文盲
【在 h*h 的大作中提到】 : 王垠这个程序不是一般应用程序,用的也不是常用语言。 : 程序的注释不是让完全不懂那门语言和算法逻辑的人看懂程序的。说什么过不了你们公 : 司code review的,你们公司用这语言吗? : 真要看他的应用程序风格,看他的java程序
|
h*h 发帖数: 27852 | 6 还有几个搞计算理论的,可能是CS教授?我觉得计算理论应该算数学,计算机行业是工
程。
现在计算机系faculty搞的东西基本算数学吧?所以王垠没有拿到博士
我觉得计算机系确实应该工程化,把理论部分赶回数学系去
【在 L****8 的大作中提到】 : 说王银不行的都是一群IT文盲
|