IT教材的逻辑学视角

 

IT教材的逻辑学视角

王咏刚

 

     前不久,著名物理学家杨振宁先生在某论坛上以《周易》为例,批评了中国古代重归纳而轻推演的学术传统。杨先生的论断立即在学术界引起了不小的波澜,赞成和反对的声音此起彼伏。对此,我个人的意见是:杨先生将《周易》这种几乎与现代科学毫不相干的国学经典与“归纳”、“推演”等肇始于古希腊城邦的逻辑学概念关联在一起,这颇有些强为“体用”的嫌疑;但无论如何,杨先生据此得出的结论——中国古代学术缺乏形式逻辑、数理逻辑等科学思维方式的事实——却是毋庸置疑的。也难怪,早在两千年前,惟一有可能成为逻辑学滥觞的名家学说就已经被独尊儒术的政治浪潮淹没和吞噬,寸土无存,又何谈稼穑呢?

 

  这种“传统”延续到今天的结果是,国内不少接受了现代科学训练的研究者会在不知不觉间忽视了逻辑上的严密性和完整性,并最终丧失了自己在科学领域里的话语权。类似地,在IT教材编撰这门特殊的科学里,如果我们对知识表述和传承的内在逻辑视而不见,只知道依据有限的“教学经验”决定教材的体例、结构、编撰方式和行文风格,国产IT教材就必然会在国外经典教材的中译版和影印版的联合夹击下丢掉最后的阵地。相反,如果我们可以清醒地认识到,编写IT教材这件事与普通的科学研究或论文编撰有着本质的不同(前者的目标在于降低知识传承的难度,其内在逻辑必须符合教学而非科研的基本规律),那么,国产IT教材一直以来的重灌输而轻引导、重演绎而轻归纳的不良传统就有希望得到根本的改变,真正优秀和经典的国产教材也就不会让师生们望眼欲穿了。

 

  说许多国产IT教材重演绎而轻归纳(这正好和杨先生批评的学术传统相反),可以举一个显而易见的例子。现在,不少大学的编译原理课程的教学已经在使用国外教材了,其中,最著名的一本教材是AlfredAho等编写的《编译原理、技术与工具》,也就是业界所说的“龙书(TheDragonBook)”了。大多数人都知道“龙书”比国内的编译原理教材好用、好学,但很少有人肯花心思研究“龙书”的编撰方法和内在逻辑。拿我自己来说,我一直对“龙书”赞不绝口,但也一直心存一个硕大的问号:“龙书”的第2章占据了原书近60页的篇幅,可即便删去第2章,“龙书”所描述的知识体系的完整性也不会受到任何影响,AlfredAho等人为什么一定要引入一个结构复杂、牵涉知识面相当广的第2章呢?其实,这个问题的答案与知识传承的规律或曰认知逻辑有关。叙事学家爱玛·卡法勒诺斯曾说(《新叙事学》,北京大学出版社,2002年):“我们能获得哪些事件信息,这在很大程度上取决于我们的时空位置,由于这个原因,我们获知事件时的顺序与事件本身的时间顺序往往是不同的。”把这句话类推到IT教材编撰领域就是:发现知识的顺序与教授或学习知识的顺序往往是不同的,如果教材的编撰者不能在写作时将自己摆到教与学的时空位置,就必然会模糊甚至破坏教材本身的内在逻辑。

 

  比如说,国内的编译原理教材大多在简单的序言之后,就直接进入文法、语言、词法和语法分析等知识的传授,而在每一组知识的传授过程中,又几乎毫无例外地遵循“定义-分类-公式”或“算法推导-实用案例”的讲述顺序。换言之,国内大多数编译原理教材都试图在课堂上营造这样一种教学逻辑:我是这一领域无所不知的权威教材;我会首先告诉学生该领域的所有公理;然后勒令学生背诵所有相关定理的推导方法,以及典型问题的求解过程;最后还要教学生使用“照猫画虎”的方式解决典型问题。殊不知,这种高高在上、全知全能的知识表述方式在逻辑上遵从的是“由抽象到具体”的演绎法则,它在科学研究或学术论文编撰时效果显著,但照搬到教材编撰领域,就只相当于许多高三学生刻骨铭心的“填鸭”式应试教育,空有“效率”而无效果了(国内的教材撰稿人大多是活跃在“论文数量大比拼”第一线的职业教员,这大概就是“教材论文化”风潮背后的内因吧)!

 

  相反,“龙书”的编撰者在确定全书的逻辑结构时一定认真思考了以下问题:编译原理的整个知识体系是数十年中无数学术精英在形式语义学、计算数学、计算机科学等相关领域探索、积累的结果;普通学生既不可能凭空承受这许多知识点的狂轰滥炸,也不可能在短短的一学期里重复前人数十年的研究历程———也就是说,单纯的知识演绎或单纯的经验归纳都不足以满足编译原理的教学需要,必须探索或创造一种符合教学规律的知识表述逻辑,其关键在于:要让学生用最小的代价重新体验知识积累的全过程,以便掌握此领域里最基本也最重要的研究方法和学术规律,同时引导学生以最快的速度进入整个知识框架,并在保持学生浓厚学习兴趣的同时与学生一同经历神奇、刺激、充满挑战的知识探索历程。

 

  为了实现这样的目标,“龙书”的编撰者精心设计了全书的逻辑结构,并特别引入了异常精彩和重要的第2章。我第一次阅读“龙书”时,在读罢第1章,了解了相关知识背景后,我的求知欲(其实是好奇心)就被推到了最高峰,我迫切想知道:我们日常使用的优秀编译器到底是如何编写出来的?我自己也能实现一个真正的编译器吗?我能发明一种别具一格的程序设计语言吗?我能像Knuth一样利用编译知识创造出可以与TeX媲美的软件工具吗?这个时候,如果我读到了国内教材里司空见惯的第2章或第3章,面对大量枯燥乏味的术语或符号,我的所有求知欲就会像失恋之后的表现欲、谈话欲、唱歌欲乃至饮食欲一样消失得踪影全无。很幸运,我在这个时候读到的是“龙书”的第2章。在这一章里,“龙书”用一个最简单的例子,引导我一边动手、一边动脑,在最短的时间里经历了一个微型编译系统设计的全过程,并潜移默化地把编译领域的基本知识框架和基本研究方法“印”在了我的脑子里。更为重要的是,当我怀揣着在第2章中轻易建立起来的自信心进入后续知识点的学习时,我经常有意无意地发出这样的感叹:喔,我想起来了,这个问题我在第2章时就已经思考和研究过,这里只不过是同一问题的推广和延伸罢了。严格地说,“龙书”第2章所展现的是一种在先验知识体系指导下的“由具体到抽象”的归纳法则,这种表述逻辑与普通学生的认知逻辑正好两相契合,同时还为后续章节中必要的演绎逻辑埋下了伏笔,减少了教与学的逻辑障碍和心理负担。无疑,“龙书”的第2章正是全书的“书眼”。

 

  除了第2章外,“龙书”在其他章节中展现出来的逻辑完整性也值得称道。拿“自顶向下语法分析”的讲解顺序来说,国内不止一本的编译原理教材在相应章节都首先给出了LL文法及FIRST、FOLLOW函数的定义,然后再介绍递归下降和预测分析的算法和实现。而“龙书”的讲授顺序正好相反:先介绍算法的基本思路;这样的算法为文法提出了某些限制条件,如此得出的文法被称为LL文法;接下来,为了实现预测分析法中必要的表驱动算法,需要引入FIRST、FOLLOW函数的定义——不难看出,“龙书”的知识表述逻辑完全符合由浅入深、由此及彼、逐层递进的教学规律,是归纳逻辑和演绎逻辑的完美统一。反观国内教材,如果说在上面那种违背教学规律的讲述顺序中还有某种逻辑规律可寻的话,那也不过是一种彻头彻尾地服务于应试教育的“填鸭逻辑”罢了。

 

  值得说明的是,“龙书”等优秀教材在形式上的逻辑完整性是根植在教材编撰者正确认识教学规律的基础上的。我们追求知识表述逻辑的严密或完整,其最终目的都是为了使教学曲线更为平滑,使学生更容易掌握最基本也最有效的知识和方法。离开了这个大前提,片面强调逻辑完整性只会制造新的认知障碍。例如,国内应用最广、发行量最大的一本《编译原理》教材显然受到了“龙书”的影响,也引入了一个试图用案例展现知识体系全貌的第2章,但很遗憾,它的编撰者显然没有悟到IT教材应尽量减少认知障碍的真谛,居然又在第2章中摆起了理论家的脸孔,选择了一个学术味儿十足的PL/0语言作为案例,还迫不及待地用大量味同嚼蜡的术语和语法图堆积出了PL/0语言的语法和语义。这种模仿方式只会粗暴地把师生的积极性转变为完成教学、考试任务的“惯性”,并最终落得个画虎不成反类犬的滑稽结局。

 

  简言之,逻辑混乱的IT教材是教材中的伪劣品,逻辑清晰但不够完整,或不符合教学基本规律的IT教材同样无法成为教材中的经典。从逻辑学的角度出发,我们或许可以找到某些评价或改进教材质量的定量方法,例如,统计教材中知识点分布的基本规律或计量教材中知识参照和引用的方向及密度,并以此为基础,比较和完善教材的逻辑模型或知识表述结构等等。但方法仅只是方法,如果教材的编撰者始终对教与学的特殊性视而不见,也许若干年后,就又会有某个诺贝尔奖得主像杨振宁先生那样,拿着21世纪初叶的某部国产IT教材断言,中国一向缺乏合乎逻辑的教学思路和认知模型了。

 

  ===================

本文出版《中华读书报》

龙书最新版本,紫龙书12月01日登陆互动出版网:http://www.china-pub.com/STATIC07/0811/jsj_longshu_081124.asp

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值