负暄琐话

我的email: rot47('649@ 6(hF+`hd"w=92vhG{>}G3"@l M >:>6?4@56 \F')

囧囧ID:g9yuayon
[修改头像]
780518次访问,排名36好友9人,关注者11
g9yuayon的文章
原创 239 篇
翻译 4 篇
转载 48 篇
评论 790 篇
g9的公告
最近评论
alextooter:ff可是用的完全的自己内存管理。。

最近ff3非常好,值得试试看。
fferror:无比期待g9老大的model checking续集。
sprhawk:哈哈,太强了,最近刚听说有Erlang,了解一下。
看一下历史,比看语法有意思得多嘿嘿
lordchl:后面提示下不动点好了,跳得太大
lbaby:Do you mind if I jot down some notes on your chests ??


猛到无以复加
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    旅游
    计算机科学
    Lambda the Ultimate
    软件开发
    Reddit编程专栏(RSS)
    正在读的书
    存档

    原创 LISP的过去和现在

    新一篇: Java门派的风险

    呵呵,题目大了点。其实我只想说点小小的瞬间感受。

    休假的感觉真好,可以在家里悠闲地读书。今天一口气读了大半Paul Graham 的书Hackers & Painters。读Paul的文章总是一种享受,几个小时不知不觉就过了。放下书的时候,仿佛一场让人迷醉的音乐剧戛然而止,而自己还沉侵当中,过了好一会儿才慢慢回到现实。我不一定同意书里的观点,但Paul的确是写文章的一流高手,总是激情洋溢,同时周详有力地论证他的观点。Paul的网站上登了书里大部分文章,有兴趣地可以去看看。书的第13章,Revenge of the Nerds,提到了LISP诞生的历史,原来那也是一段精彩传奇:最早LISP是John McCarthy搞出的一套计算模型(当然,λ-calculus还是Alonso Church搞出来的),用来替代繁复的图灵机。用TM做过推导的同学就知道用TM还是相当不容易的哈。只不过McCarthy的学生Steve Russel突然发现把这个理论里的eval算子翻译成机器语言(当时他们能用的就是IBM 704爷爷机了),LISP就有一个解释器。当时连McCarthy都觉得这个想法不可思议,对Steve说,老大,你把把理论和实践混淆了哈。不过Steve还是用机器语言写出了eval。于是世界上第一个LISP解释器诞生了。直到现在,越流行的语言吸收的LISP元素越多,比如python,比如ruby。LISP直到现在仍然被众多牛人推崇。当年LISP有9大创新,50年后,深刻影响了编程语言的进程。可见一个完善的理论被适当地应用,可以变得多么强大,焕发多么夺目的生机:
    1. 条件语句。当初的语言是没有if else的,goto统治世界。
    2. 函数类型。函数成了语言里的类型,可以被变量指代,可以被当成参数传来传去(的一类公民的必要条件,参考SICP第一章)。这一条可以极大简化编程,让我们写出非常漂亮的程序。所以现在的流行语言纷纷加入了这个特性(可惜Java没有)。
    3. 递归。这个不用说了吧。
    4. 动态类型。smalltalk, python, ruby。。。连C#也有一个类似的var了。
    5. 垃圾收集。不要以为GC是Smalltalk的发明哈,更不是Java的。
    6. 基于表达式的编程。任何表达式都可以成为另一个表达式的一部分。不像很多语言,把表达和陈述分开。
    7. 符号类型。这个在python和ruby里被采用,广受欢迎。
    8. 代码即解析树。这个让LISP能方便地定义新的句法,操作程序本身,编写元程序,生成真正意义上的宏。
    9. 语言无时不在。代码运行/解析可以在任何时候发生。这点和8.配合可以让语言的扩展和交流变得非常容易。

    发表于 @ 2005年12月29日 23:55:00|评论(loading...)|编辑

    旧一篇: 用错的中国字

    评论

    #laurence 发表于2005-12-31 09:37:00  IP: 222.66.14.*
    Lisp 作为一个Coder是极好用的语言,有很多Script的特性在里面,这在C/C++中是比较欠缺的东西。

    但是,正如任何东西都有它的适用性一样,做应用软件,在项目中使用它要慎之又慎,不是每个东西写完了都有人维护的,更况且项目中最重要的是对企业现有资源的整合利用,这点上它不像J2EE身后有一个企业框架来支撑。
    #ocean 发表于2005-12-31 16:54:00  IP: 222.95.58.*
    不知道在哪能找到Paul Graham的ansi common lisp这本书, 在网上看到了这本书的前两章感觉写的相当精彩,但是在国内的书店又找不到.
    #Guest 发表于2006-02-23 08:38:00  IP: 128.100.5.*
    I know nothing about LISP, but I would like to recommend you a book, because it uses LISP for theoretical purpose which is different from the "9大创新" you mentioned. I guess that is the essence of LISP. It may be a pity for you not knowing about this. Of course I may be totally wrong. Anway, look at this book.

    Th Unknowable by G. J. Chaitin

    http://www.cs.auckland.ac.nz/CDMTCS/chaitin/unknowable/index.html
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © g9