共计 94 篇文章

QoBean的元语言系统(二)

上一篇:<< 第一部分:元语言系统基础,以及程序的基础元素 第二部分:元语言下的编程基本方法 三、代码组织形式 1. 物理代码块(代码文本、代码行) 代码到底应该如何组织?如果我们认为代码是由序列调用的例程构成的,那么我们可以把代码的形式回溯到很“远古”的时代,例如: function func1() { } function func2() { } function main( ...

QoBean的元语言系统(一)

QoBean是从元语言系统开始构建整个语言系统的,从本文开始,我开始讲述QoBean所理解的元语言。不过,不同的人、从不同的侧面所理解的“元语言”是不一样的,不必求同。 “QoBean的元语言系统”包括三篇,分别是: 元语言系统基础,以及程序的基础元素 元语言下的编程基本方法 元语言的应用:虚拟执行环境 QoBean的项目地址: https://qomo.svn.sourceforge.net/svnroot/qomo/qobean ...

JavaScript全局优化带来的负面效果……

读者在China-pub中指出《JavaScript语言精髓与编程实践》的一个示例在FF上不正常。具体来说,就是第“4.6.6 语句或语句块中的闭包问题”中的第二、三、四三个示例。这个问题我反复测试过,只出现FireFox(SpiderMonkey JavaScript)中。我当时意识到是SpiderMonkey特殊的全局变量引用机制导致的,但因为没有切实地、在源代码级别观察过,因此我没有立即回答这个问题。 这些天有点时间了,把这个话题拿出来重新讨论。代码是这样子的: var obj ...

对JavaScript的eval()中使用函数的进一步讨论~

《JavaScript语言精髓与编程实践》的读者I22141提出了一问题:为什么下面这段代码在JScript和SpiderMonkey中表现不一样: var func = eval("(function(){})"); alert(typeof func); 更进一步的问题是,书中对匿名和具名函数在JScript与SpiderMonkey中的表现解释得不够清楚。好的,这篇文章就这个问题深入讨论,不单涉及书中的内容,也更深入地讲述一下JS的解释与执行过程——其实所有的内容在书中都有涉及,但过于分散,不便于专门地来分析一个具体问题。 首先,应该明确表达式与语句。对于JS来说,eval()总是试图执行一个语句, ...

旧文重发:谈企业软件架构设计

这篇专访是ZDNET的李宁编辑在2007.03月期间做的。 [编者语] 最近在网上读到了“杀不死的人狼——我读《人月神话》”系列文章。是周爱民关于《人月神化》的读书心得。《人月神化》在软件工程里一本很有分量的书,讲述了Brooks博士在IBM公司 System/360家族和OS/360中的项目管理经验。周爱民在他的这一系列文章中用自己架构师经历为基础,从他的视角重新品读了这本书。而这也使我有了采访下他的想法,从中我们也许可以了解到中国企业内软件架构设计这个环节的现状。目前周爱民是盛大网络架构师。想与ZDNet技术专家一起分享你的智慧吗?请联系我leesbfpsj#hotmail.com. ...

朋友们,我的D2之行

D2开始了,然后又结束了。很快,但留给我深刻的印象。这一届D2,我遇到了一些旧的朋友,看到了一个新的开端。一些故事发生了,很快在消失。然而D2,很快的又会到下一届了,我想…… 一、故事的开始 来到北京之后第一次上网,就从我的MSN空间里看到一条消息,是克军发来的。克军,我并不认得,但他在消息中提到一件事:约我做第二届D2的讲师;提到一个人:Hedger Wang。 至于克军是Who,大家去看他的相册好了。 ...

JavaScript语言精髓与编程实践 - 勘误

1. 字词上的错误(24处) 代序,页1,倒数第五行 然而一如我现在所见到, 改为 然而一如我现在所见到的, P22,表1-2,(含表头)第三行、第二列 也被称为Cliet-Side JavaScript 改为 也被称为Client-Side JavaScript P30,表2-2,(含表头)第三行、第三列 一些函数/方法的运回值是数值 ...

《JAVASCRIPT语言精髓与编程实践》预读样章公开~

书稿已经出送印,按出版社的说法,大概两三周就可以在书店见到了。 所以现在china-pub已经有了预订: http://www.china-pub.com/38730 根据出版社的许可,下面是作为公开预读的章节,欢迎评论指正。哈哈。 预读内容: 代 序: 学两种语言 前 言 目 录 第一章:十年JavaScript 第四章:JavaScript的函数式语言特性(前五节) ...

QoBean技术文档(1):QoBean的基础技术

一、QoBean的发起 我对Qomo的不满由来以久,最根深蒂固的便是它的命名空间的实现方式:隐式地维护路径与命名空间系统。所以有一段时间,我几乎不敢看Qomo的Framework/Names/下的代码。 我对Qomo不满之处很多,但归结起来只有一条:太大太复杂。但它比那些“看起来不怎么复杂”的项目有太多特性要实现,因此复杂是必然的。我只是一直以来无法跳开一个圈子:为什么复杂的,一定不能简洁? QoBean的触动来自于一篇文档(忘掉了出处),说在JavaScript中实现类继承只需要几行代码而已。我当时想:是啊,只需要几行代码就行了,为什么Qomo的Object. ...

启动一个最小化Qomo项目-QoBean!

什么是QoBean ? QoBean是Qomo V2项目中的一个子项目,所以毋庸置疑的,它也是一个开源项目,它的最新版本可以从如下地址获取: https://github.com/aimingoo/qobean https://qomo.svn.sourceforge.net/svnroot/qomo/qobean QoBean是Qomo V2的一个分支,它的目标是最小化Qomo。首先,它没有打算象Qomo一样通过一个$import和与$import相关的一个兼容层去支持兼容平台。 ...

关于Qomo 2.0 beta1的发布

注意:此前对Qomo V2 beta1做过一次发布,但因为该版本文件已经丢失,且未在sourceforge中发布, 因此此次发布仍然使用beta1的名称。并将更新sourceforge中的文件。 一、Qomolangma 2.0 Beta1 参见如下发布说明: Qomo 2.0 beta1 发布说明及新功能 此外,今次发布的更新列表包括: 添加工具函数toEtor()和类Dict() Class()支持将匿名函数注册为匿名类 在内核方面的一些优化代码 ...

还原JavaScript的真实历史~

问题 JavaScript真的继承自Cmm吗? JavaScript与Java有多少关系? JavaScirpt最初的设计是怎样的? 在许多资料,JavaScript的语源被追溯到一种名为Cmm的语言。同样是在这一溯源的过程中,人们发现“其实”JavaScript不是第一种网页中的脚本语言。现在一些所谓“公认”的情况是这样的: 大概在1992年,一家称作Nombas的公司开始开发一种叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。这个脚本语言捆绑在一个叫做CEnvi的共享软件产品中,当Netscape Navigator崭露头角时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的试验称为EspressoPage(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端脚本语言。而Nombas丝毫没有料到它的理念将会成为因特网的一块重要基石。 ...

从表达式到函数:表面的简洁

scheme/lisp中,(基于运算元、运算符的)表达式运算是一个语法基础,但它们被称为函数式语言而非表达式语言。那么,它们是如何解释函数式语言的呢? 一个lisp的函数在语法上应当书写为如下格式: ((lambda (p1...pn) _e_) a1...an) 这是什么意思呢?其实,这其中的p1..pn为形式参数,而a1..an为实际参数,而lambda则是一个从天上掉下来的概念,它被用来作为一个函数标识符的命名——就好象四则运算中的x,y,z只是命名一样。 ...

再议《JavaScript代码优化一例》

今天收到《程序员》第8期,读到杨建华先生的“JavaSctipt代码优化一例”。仔细读来,觉得所做优化未能尽彻。所以专写一篇文章来讨论杨先生的例子。 原例可以在杨先生的blog上找到: http://prowyh.spaces.live.com/blog/cns!EAAA8AB356F88EA0!403.entry https://prowyh.wordpress.com/2007/08/ ...

又见标题党——怒评《JavaScript核心技术》

很少写书评,尤其是在这样出离愤怒的时候。 之所以愤怒,是因为今天看到了《JavaScript核心技术》。 看到书名,看到那头犀牛,我的第一冲动就是立即下单买进。因为O'Reilly、机械工业、核心技术,再加上在JavaScript界中无人不知的那头犀牛,大概已经是品质的极境了。 然而毕竟是在CSDN的读书区看到这条消息,毕竟还有一个“预读”。但预读中的这份目录却不禁让我疑惑:这会是在讲“核心技术”吗?再细读内容,实在大失所望~大失所望~大失所望! 终于开始怀疑犀牛的价值了,于是又去查原版书。 ...