Monthly Archives: May 2010

在看圣塔菲的SWARM的object c代码。先把这个空架子浏览一下。

Posted in Uncategorized | Comments Off on

pypy

pypy 官网原文: ~~~~~~~~~~~~ We aim to provide: * a common translation and support framework for producing implementations of dynamic languages, emphasising a clean separation between language specification and implementation aspects. * a compliant, flexible and fast implementation of the Python … Continue reading

Posted in Uncategorized | 1 Comment

架构:一分为四:八卦:读书笔记

架构:一分为四:八卦:读书笔记 读书笔记 ~~~~~~~~~~ 文王八卦的数字是按照洛书安排的。 八宫卦的顺序是:从底向上第一爻变;第二爻变;第三爻变;第四爻变;第五爻变;返回来第四爻变;一二三爻一起变。 周易的卦序是人类社会发展的各个过程。 伏羲发明了八卦和六十四卦(是不是伏羲命名的卦名?),周文王做了卦辞,周公做了爻辞,其它文言等是孔子做的,并且孔子做了读书笔记系传。卦名,卦词,爻辞都是可以改的。 先天指生成,后天指使用。 一个卦有错卦,就是所有爻都变以后的卦;有综卦,就是把卦上下颠倒后的卦。 大衍的卜卦方法导致阳爻是9,阴爻是6. 我的想法 ~~~~~~~~~~~~~~ 六十四卦就是周文王在狱里玩的大富翁游戏。色子只有两面,也就是只有一点和二点。掷6次色子。这个大富翁只走一步,就得到了一个结果,也就是遇到了一个事件。而不是轮流走很多步。卦名是得到的状况,而卦辞是对这种状况的评价和应对。爻辞则是描述这个状况更详细的过程。因为人生就是大富翁游戏,因此,研究易经会有所得。 八卦体现了对立统一的辩证法。 八卦和荷兰德的遗传算法用二进制数来表示信息有些类似。并且八卦的爻变也对应遗传算法的交配和突变。而八卦到六十四卦的内卦和外挂也对应荷兰德提到的积木块。 参考 ~~~~~~~~~~~~~ * 易经杂谈 * 系传别讲

Posted in Uncategorized | Comments Off on 架构:一分为四:八卦:读书笔记

电脑:编程语言:scala

电脑:编程语言:scala 特点 ~~~~~~~~~~ * 融合了erlang的并发模型,haskell的纯函数编程能力,而又能够用命令式编程,还能够用面向对象编程。 * 能和java互相调用。书写方式也接近java。据说是java的最有力继承人。 * ocaml(也包括F#)是具有面向对象功能的纯函数编程语言。scala是具有纯函数编程功能的面向对象编程语言。如果不使用纯函数编程功能,scala完全可以当作java来用。而ocaml则完全是另外一种语言。 * 具有java和dotnet版本。同时的缺点就是没有c语言版本。 * 是静态编译语言。 * 由于一开始语言功能考虑全面,因此,语法浑然一体,很少打补丁,不象java那样后补了很多功能后导致的混乱。 * 历史还比较短,但也基本成型。 * 是一个编程语言专家的作品。 scala会是未来王者吗? ~~~~~~~~~~~~~~~~~~~~~~ scala可能胜出,因为c++的胜出原因就是和c的兼容性好。ocaml和c以及c++关系较远,因此,流行的可能性小。 但是因为c++和java并不是很成功,因此python很流行,python是多范式的编程语言。从这个角度来说,重新设计一个语言也是不错的选择。 函数语言具有比静态编译语言更严格的限制,也因此具有很多独特的优势,因此纯函数语言的存在是有必要的。erlang是实用版的纯函数语言,并且有好用的多线程模型。erlang、c、python的组合也是不错的混合编程的选择。

Posted in Uncategorized | Comments Off on 电脑:编程语言:scala

电脑:编程语言:haskell

电脑:编程语言:haskell 特点 ~~~~~~~~ * 继承自ml语言。 * 由一个委员会来设计这个语言,并且发布标准。有多个编译器和解释器。 * 是纯函数语言。 * 惰性求值。 * 能够定义象“1、2、3”这样的基本数值。叫做数据类型定义。 * 用单目(也译作单子)来封装有副作用的函数。同时,不使用抛出错误信息的方式来提示错误,而是出现了错误也会有一个最终结果。 * 静态编译语言。 * 属于学术语言。 缺点 ~~~~~~~~~ * 学习曲线陡峭,知识点很多。这个语言的设计是用数学思维来设计的,有大量的符号和特殊表达形式。 闲话 ~~~~~~~~~ haskell在编程语言中塞入了很多概念,比如惰性求值,自创类型,monad。并且编程语言格式有很多魔法,比如模式匹配,带条件的模式匹配等,使用了太多的符号。如果scheme能够用子语言的形式来实现haskell的所有功能,我认为会比haskell更受欢迎。haskell有太多的数学习气,需要大量的逻辑思维。 haskell更象smalltalk一样是一个先驱,一个演示,而不是c++这样的工业目的和向前兼容。scala是一个向前兼容的工业目的的具有函数能力的语言。 链接 ~~~~~~~~~~~~ * 电脑:编程语言:概念:纯函数语言 * real world haskell

Posted in Uncategorized | Comments Off on 电脑:编程语言:haskell

电脑:编程语言:概念:纯函数语言

电脑:编程语言:概念:纯函数语言 函数能够当作参数来输入叫函数语言。而变量只能赋值一次(也就是只有函数和常量),从而让函数的输入如果相同,则输出必定相同,叫做函数没有副作用,没有外部作用。函数没有外部作用的函数叫纯函数。 由于变量只能赋值一次,那么就不能有for语句。纯函数语言是通过递归来解决循环的。 纯函数语言还较少使用if语句。而是用模式匹配来代替if语句和case语句。模式匹配就是用同一个函数名同时定义几个函数,这几个函数分别有不同的输入参数条件。 纯函数语言把含有外部输入的代码和不含有外部输入的代码分开,来达到没有副作用的目的。 由于函数没有副作用,就没有函数的相互影响。这样,纯函数语言更容易实现并行计算。

Posted in Uncategorized | Comments Off on 电脑:编程语言:概念:纯函数语言

电脑:编程语言:erlang

电脑:编程语言:erlang 特点 ~~~~~~~~~ * 纯函数语言,具有变量不可变、参数的模式匹配等特点。因此不易出错。 * 有方便的,自己的多线程模型 * 纯函数语言也有很好的并行的特性。并行和多线程(并发)是两个概念。 * 是动态解释型语言。 * 能够热补丁、热更新。也就是能够在运行过程中更新部分程序。 * 有丰富的库 * 是实用的纯函数编程语言。而haskell则是学术语言。 适合 ~~~~~~~~~~ * 云计算。 * 纯函数编程,比haskell引入的概念少些,也因此学习曲线较缓。 * 是实用的语言,工业使用的语言,而不是haskell那样的学术语言。

Posted in Uncategorized | Comments Off on 电脑:编程语言:erlang

电脑:编程语言:ocaml

电脑:编程语言:ocaml 特点 ~~~~~~~~~ * 出生于法国。 * 和haskell同样派生自ml语言。 * 加入了面向对象编程和指令编程特点。 * 具有完善的库。 * 静态编译语言。 适合 ~~~~~~~~~~~ * 混合编程。在函数编程的同时不愿意放弃面向对象和指令编程。 * 重视性能和独立发布能力。

Posted in Uncategorized | Comments Off on 电脑:编程语言:ocaml

复杂读书笔记

架构:相关:复杂 复杂读书笔记 ~~~~~~~~~~~ 阿瑟的正反馈。 考夫曼的基因统计。 稳定状态和无序状态之间的临界状态:相变状态,是不断向更复杂发展的复杂状态。 人工生命。 圣塔菲提出了swarm程序来作为多个体模拟的平台。 荷兰德的理论是复杂科学的核心 “”””””””””””””””””””””””””””””””” * 他提出了多个简单个体集合在一起,就造就了复杂的整体现象。 * 提出了层次、积木块等概念。 * 用基因的交配与选择来解决探索无穷可能空间的问题。 * 用计算机建模来作为复杂科学的试验手段。 * 提出了单细胞模型,多细胞模型。神经网络模型。 * 介绍了西洋跳棋的人工智能程序。是通过提炼整体特征,不断修正参数的方式来解决无限可能空间问题,同时也就有不断自我改进的能力。 * 介绍了神经网络模型 * 介绍了元胞自动机,并提出了自己的元胞自动机模型。 * 提出了反馈为基础,但具有自我发展的模型。叫分类器系统。让计算机自己找到解决问题的方法,而不是由程序员来提出解决方法。 我的想法 ~~~~~~~~~~~~~~~ 层次、积木块、复制、变异、竞争、选择这些概念都包含在我的架构中了。在荷兰德的著作中基本上把我的哲学架构中的各个概念都提到了,同时也涉及了哲学架构的影子架构的各个概念。 参考 ~~~~~~~~~ * 《复杂》 * 《涌现》 * 《隐秩序》

Posted in Uncategorized | Comments Off on 复杂读书笔记

编程语言选择的简洁版

编程语言选择的简洁版 ~~~~~~~~~~~~~~~~~~~~~~~~~ 从传统上来说,大家都用得到的最基本的软件是编译器和操作系统。编译器是直接和人编写的程序代码打交道。操作系统是直接和硬件打交道。再多说一些,其它基本软件还有图形用户界面(以及命令行用户界面)、html语言、浏览器等。 从和操作系统打交道来说,编程语言的终极解决方案是c语言。现在又出现了更高层的面向对象的操作系统API,比如java、dotnet、cocoa。这些面向对象的API都有自己的原生语言,比如java、c#和object c。 从和编译器打交道来说,scheme(或者说lisp家族)就是编程语言的终极解决方案。scheme的语法看起来就像在编译器内部。实际上lisp的来历就是一个编译器的半成品。scheme的表达方式灵活,并能用宏来轻松创建方言。 对用户最友好的编程语言是python。适合非专业编程人员。同时也适合其它面向对象编程的程序员。这是因为python相对编译语言来说代码更简洁,因此编程效率更高。 再有别的编程语言的选择原则: * 一个选择原则是不同的平台有各自最佳支持甚至是唯一支持的编程语言,比如flash程序只能用action javascript来写,动态网页生成的最佳语言是php。 * 动态语言的编程效率高。python、perl、ruby、lua都是动态语言。 * 纯函数语言并行能力强。结构严谨,出错少。haskell、erlang、ocaml、scala都具有纯函数编程能力。 * 一些数学语言,比如prolog,mathlab等。

Posted in Uncategorized | Comments Off on 编程语言选择的简洁版