只显示主题贴

“当 Erlang 的实现人员开始使用微线程的时候,就已经说明了 Erlang 只是对 PI 演算的模拟。” —— lichray 的大号 Lich_Ray PI 演算和传统上大家对并发的认识一样,假定了存在一个物理上的并发系统。对于计算机程序来说,这样的一个系统就类似于一个有无限 CPU 的计算机。这和用队列实现的多线程有什么区别呢?本质上的区别在于,前者是体系外并发,后者是体系内并发。所以说,当 Erlang 的实现人员开始使用微线程的时候,就已经说明了 Erlang 只是对 PI 演算的模拟。这就是对你前两个问题的回答。 需要注意的是,Erlang 对 PI 演算实现的这种“模拟”性 ...
引用本文以 lichray 设计的 S-dict(t) 配置文件解析器为例,简单介绍了词法分析器的原理,详细讲述了递归下降语法分析器手工构造方法。因为该项目本身已经完成,故此本文拥有一个实际可用的例子,是不可多得的入门教程。 引用T1 大人说过,技术的迅速贬值是十分残酷的,比如大部分的手工优化代码,早已被编译器们代劳。这篇文章中要说的递归下降语法分析方法也是严重贬值了的技术之一。不过我认为,在享受着别人构造的自动化工具同时,知道其原理还是很重要的。一个典型的例子就是正则表达式——大家都会用,能保证写对的人也很多,但看了专家们的解答后都自愧不如——原因很简单:你会写正则表达式的编译器吗? 不过这 ...
不需要说你什么时候说过,更不需要掩饰什么,你的系统无非是这一类东西,或者更差。不服气吗?我本来不想说你忽悠客户的,但你自己既然这样说了,那我就不客气了:我可以用 JavaScript 轻松地构造出同样有力的程序而不需要任何所谓“框架”,因为函数式编程对于语言的依赖要求更少。你的框架,作为一个产品,当然是有价值的,但不是所有有价值的东西都有继续存在的价值,这一点我希望你能明白。 再说抽象。真的难以置信一个懂得理论和抽象的价值的人会说出这样一番话。你当然是知道我所说的东西的,但很明显,你仍然站在拜火教的一方为自己并不高明的系统在不停的辩解。我没有对你进行任何人身攻击,第一个脏字是你说出来的,请不要 ...
canonical 前辈真的很能扯。其实吧,我觉得他生下来就可以去死了,反正他的“终极意义”也就是去死;他其实也不需要学习什么编程语言,只要发明一种能快速重组几亿个晶体管的技术就可以了;他也不需要学习物理学,因为他看不见物理学的模糊本质在数学中的体现只看见了其在自然中的体现。既然你已经生在自然中了,那还要学什么物理呢?他也不需要学习数学,因为他只是看到了数学对于存在性的弱化表达而不去思考弱化的意义和力量,因此成为了某种形式的拜火教徒,现在正在举大旗反对我们基督教徒。 我沉默了很久,今天被 canonical 前辈唤醒了。愿拜火教的主保佑 canonical 同学在找到他的终极意义之前明白抽象的 ...
LS 的想法是对的,就是这么回事,只是宏写错了,应该是: (define-syntax object (syntax-rules () ((_ that ...) ((class () that ...))))) 我写了一个那样的“三模式系统”。 ; 在一个正常的 Scheme 实现中,undefined 都是一个特殊的符号 ; 但因为在 R5RS 中没有特别指明,不如把它提取出来再用 (define undef (if #f #f)) (define (absobj) (define (clone verb) (define mixin undef) ...
哦对了,我还用 Scheme 宏写了一个类似的系统,没人提醒我都给忘了,拿来晒晒。 ;; 这里只有部分定义,快速排序和二分法查找就不帖在这儿了 ;; 这里是 slot 类型的定义,Scheme 中不能动态 eval,只能用点别的招数 (define (make-slot name act) (cons name act)) (define (slot-name s) (car s)) (define (slot-act s) (cdr s)) (define (slot<? s1 s2) (symbol<? (slot-name s1) (slot-name s2)) ...
引用这是最终确定的 JavaScript 基于消息传递编程风格的文章“OOP 诡异教程(上)”的下篇,它的 Python 改写版本就是 尝试用Python实现消息传递编程风格。原文地址:(豆瓣:http://www.douban.com/group/topic/1669427/ 博客:http://let-in.blogspot.com/2007/06/oop.html)。原来的想法是以风格开头,谈到 JavaScript 的内部机制,但作者 lichray 迟迟没有动键盘,认为不如利用已有的风格做一套机制出来,这样可能更有意义。于是,就有了这个更加“诡异”的下篇,展示了一个更加“诡异”的招数 ...
hax 说的“内存泄漏”仅是实现层的问题。而LZ的代码根本就是错的,其实用了一个全局变量: js> date = 9 9 js> function foo() { return this.date||(this.date=Date()); }; js> foo() 9 还不如方案一。就算运气好点,原本 date 为一个假值,this 引用也会污染上层名字空间。 js> date = 0 0 js> foo() Fri Aug 17 2007 20:30:42 GMT+0800 (CST) js> date Fri Aug 17 2007 20:30:42 ...
  • 进入论坛 AJAX
LSS 好像犯了个小失误:research language 特指仅出现在论文里的编程语言,有实现已是万幸了,成功的有个形式语义方程,而更多的只是有个描述,论文引用数都成问题;语言都是高人们的血汗,那些用户数拼命增长的也不例外。但在许多时候,我们不谈语言有多么 good, better,只谈它们是否 right。Trustno1 应该对形式语义和类型系统有相当的了解吧,应该能知道我所说的"right"是什么意思 :)。 LS,只为了批评一句话的用语失当引用整篇文章这个习惯很令人崩溃 :)。 评判一个编程语言的优劣,不听宣传,不靠比较特性,不凭借感觉,不看用户人数,不管当前实现;要用科学,拼完 ...
引用上个学期末学校开展“读书月”活动,然后我冒“天下”之大不讳写了这篇文章,现转发在此。 最近我在读一本似乎和编程没太大关系的计算机书籍,叫《ACM图灵奖演讲集 - 前20年》(以下简称《ACM演讲集》)。这本书收录了1966-1985年这20年间图灵奖获奖者们的演讲。相对于计算机的普及速度,文章已经很古老了,中文版出版也很久了,但并不像那些纷扰而嘈杂的电脑书刊那样稍纵即逝。普通的电脑书,充斥着看似先进的技术;普通的编程书,充斥着不知为什么而生的代码。而它,就像一位智者,静坐在书店那些已经满是垃圾文字的书架上,看着“畅销书排行榜”上的风云变幻,嘴角一丝不易察觉的坏笑。 “看一本好书,就是 ...
Lich_Ray
搜索本博客
博客分类
我的相册
179415fd-19e7-43fb-9315-4354e1aa017a-thumb
py-wear
共 4 张
存档
最新评论