第三节 效率定律 一、效率的定义 在宇宙中,大至物种的演进、变化,小至个人的工作、运动等,都严格地遵守效率 法则。 效率的定义是: ┌─────────────────────────┐ │F=E/t,即特定的能量在特定的时、空中所作的「功」。 │ └─────────────────────────┘ 由上式 F = E/t 可知,特定的「能量」在特定的「时空」中所作的「功」,是一 恒定值,既为恒定值,表示不可能有任何浪费。当能量不变时,时、空的延长往往会导 致「功率」的不足,从另一个角度看,可以说是能量不够,效率低。 对计算机而言,如果写作程序的「功率」能接近此一「恒定值」,而又具有长远的 使用价值,则我们可以假定,这种程序的效率最高。 由人类文明的演进,可以看出,因为技术日渐专业化,工作的难度不仅没有减低, 反而更加复杂。这种借着职业专家的投入,以节省一般应用者宝贵时间的方法,事实上 可以说就是效率的追求。 因为人的生命仅存在于有限的时间,所以其价值极高。每一个电脑程序,其最终目 的都是为了服务大多数的使用者,制作程序者仅仅是少数人,其制作时间的长短,永远 无法与大多数的使用者,在操作中所耗费的时间相提并论。 此外,以写作程序为职业的人,一生中所需写作的程序,也一定有相当的数量。如 果能重复应用写过的程序,将更缩短其写作时间。无论从哪一个角度,若要追求效率, 汇编语言应是唯一的选择。 作为计算机的从业者,在职业良知上,理应禀着服务人类、追求效率为最高准则。 二、计算机的效率性 计算机的发明,是人类追求效率最具代表性的成就。 目前计算机的机能尚局限在数据处理以及自动控制上,人们利用计算机,所期望得 到的效率不外乎下述六点。 1,节省工作时间及工作成本。 2,取代繁琐、重复性高或具有危险性的作业。 3,追求精密无误的数据、讯息。 4,贮存或运算大量的数据或数据。 5,远距离的通讯或遥控作业。 6,自动化工业生产或一般性服务。 然而,计算机发展方兴未艾,上述数点难以表达于万一。因此,我们有必要将人类 所期望的效率整理归类,以作为分析判断的依据。 三、四大效率定律 兹以人类社会中,有关作业过程、生产成本及应用价值等三方面,分别假设定律如 下: 定律一: 在作业过程上,能以最少步骤产生最大功率者,效率最高。 定律二: 在生产成本上,时、空间及原料最节省者,其效率最高。 定律三: 在应用价值上,功能及成果能一再累积者,其效率最高。 定律四: 最佳的效率,是最符合实际需求的最大边际效应。 计算机的应用,纯粹是为了追求工作效率,据此,硬件、软件的设计,都应严格遵 守效率定律。可是事实却不然,由于计算机发展迄今,一直是「卖方市场」,美其名为 「高科技」,内行人高利、高酬,外行人则唯恐后人,亦步亦趋。 计算机界为了谋取近利,在软件设计的过程上,常采用最缺乏工作效率的高级语言。 但是由于高级语言易于制作,生产成本低,只是苦了「无知无觉」的买者,为了追求效 率往往要花费更多的代价,购买更昂贵的、更新型的硬件,以满足其效率的需要。 有人说高级语言制作的程序还有一个汇编语言无法比拟的优点,就是很容易「转移」 到其它的机种上。事实上,目前微电脑市场仅存两种机型:一为IBM PC系列及其兼容机, 另一为MACINTACH ,而这两者所有的软件,不论采用哪一种语言,都无法轻易地「转移」! 一般说来,任何一种新的微电脑上市,其执行速度及记忆容量每增加一倍,其价格 亦成正比上升。是不是有必要非改进硬件,才能达到效率的要求呢?如果我们能澈底了 解程序语言的特性,当会明确地认知怎样才具最大边际效益。 这也是进化的基本法则之一,当计算机技术成熟之时,真正的效率才会受到重视。 同理,在计算机应用效率达到最高点时,也就是计算机技术成熟的时机。我们如果能掌 握这个原则,自不难看到长远的发展趋势,洞烛机先。 四、汇编语言之效率 根据定律一,汇编语言之效率是不容置疑的,因为汇编语言相当于计算机运行的 「机器命令」,能直接产生「功率」。 生产成本有多种意义,在此我们仅讨论其中两点:一是生产过程所需的时间,一是 产品的直接成本。 汇编语言能以最小的空间,发挥最大的功能。显然,在等效的功能下,其成品所占 空间最小,成本最低。但是对生产过程所需时间而言,汇编语言就处于相当不利的地位。 除非能有一种方法,可以改进汇编语言制作的效率。 这正是本书的主要目的:介绍一种方法,以提高汇编语言之制作效率。 我们的目标不仅在提高数倍的制作效率,并且还要证明,用一种特殊的手段,能将 汇编语言设计的「模块」,如同砌砖一般,建造出信息的金字塔来。这样不仅能满足定 律三,而且完全符合定律四的要求。 最重要的,是这种效率的达成,在于利用人的「智力」。我认为在宇宙进化的过程 中,到目前为止,「人智」就是最高效率的结晶。任何人若要追求效率,应自己先下手, 与其坐待硬件的改进,不如充实程序写作的方法及技巧,至少,这些都操纵在自己的手 里。 五、模块的效率 模块并不是一个新观念,在人类文明发展史上,人一直致力于了解自己身处的宇宙。 这种了解,实际上就是模块应用的观念,将宇宙大环境,分解成为人所能认知的小环境, 进而将小环境再分解成为个人的经验素材。 这样一层层地分解下去,便有了「概念、知识」。换句话说,概念及知识,就是一 个个代表人类对客观认知的模块。 基于模块的特性,人才能灵活地加以应用,因而产生了「人类文明」。同理,当计 算机的软件,也演化为模块方式,进一步大量推广运用时,计算机文明的时代,即将到 来。 模块的效率是结构性效率的最高表现,在我们处身的宇宙中,无处没有结构,无一 不受到结构的支配。有关模块规划、制作和应用,将在第四章第三节、模块观念中详加 讨论。