本帖最后由 testjhy 于 2025-1-20 00:13 编辑 3 N# l% L. g; ~; P! S# b , l* v7 W- H; X* ^* T5 x. ~@沉宝同学[用汇编语言实现递归]可以看出他是有很好的计算机专业童子功的+ ^2 G4 A8 j6 H* H0 W
我大学专业核反应堆工程,小专业是反应堆控制,当年三里岛、切尔诺贝利核电站出事后,国内核电也被压制,我也逃到控制专业去读研究生,没考好被搞人工智能的导师拣了过去。人工智能当年的编程语言是Lisp,读研究生课程时,我大学时学了点Fortran,对Lisp这种什么Lamda表达等等这种计算机或者数理逻辑思维很难转弯,考试混过70多分及格算过关。最重要的是研究生院机房很小,几乎没有上机实习的机会。 3 ^# u) n6 v7 T5 x, o' n Q/ `7 A& G7 j! ^9 p2 W
来到导师身边,科研条件大幅改善,主要是老师从美国回国时带来了一台IBM PC,当时整个学院机房才有那么几台PC,老师们都要分配机时,学生几乎没有可能使用,所以我们组的学生特别幸福,除去做理论的几个学生,大约只有三四个学生可以轮流使用。我在核反应堆工作时经常上夜班,所以除了正常排班使用电脑,后半夜也是我的天下。 & J; z3 N( z& l ' J4 o; s" O1 l( ?( y" P! B8 g我有一个好师兄,虽然来导师身边比我稍晚,但我读硕士他读的是博士,就象沉宝同学一样有很好的童子功,他辅导我用Lisp,他写汇编的能力很强,一是把反汇编Lisp语言,把英文版的Lisp汉化,在学术圈里推广。二是可能第一批写反病毒程序的,记得当年第一个计算机病毒是“Ping Pong”病毒,中毒后屏幕上有一个小球在弹跳。师兄把病毒反汇编后,找到消除或抑制它的方法,这个是商业行为,为他挣到第一桶金。多说几句,我以为他会往创业方向发展,结果他的个性有点游戏人生,在学术和市场之间行走,过几年研究方向转变为科技金融,这可是2000年早期,可惜英年早逝,经常令我无限追思。5 m6 H/ I+ m* {2 I
" k5 k% u; @; ]- P* J J
在师兄的帮助下,我的Lisp语言能力可以吹牛:突飞猛进。过一二年时间,在学院我师兄以下,我不惧其他别人。我其实最得意的,就是递归用得贼好。那时候,内存是512K,硬盘是10M,硬盘要被6-7个人占用,记得硬盘空间一紧张,大家都可以去别人目录下把OBJ,exe,还有常用程序删除了。递归用得好,程序就小,为了这十几K,100K的空间还斤斤计较。 2 u A. ?$ b; B: y2 s8 J9 s6 L& g( S
当时我写的Lisp程序,别人看了都说妙,有些递归调用,师弟们说看得懂,要自己编起来,可能就按流程写一大堆代码。我往往是在某个关键点,设一个全局变量作为开关,直接调用自己,省略不少重复性过程,靠全局变量控制相似过程的不同部分。% P3 {1 \: C+ h- k' ]: }
$ S! y- w, M5 t n% s7 K记得我研究过专家系统(后发展成知识系统)的开发工具,给师弟们甚至我的早期学生们讲课时,一讲到推理机,他们都觉得神秘而又好奇,都说师兄或老师你把你的推理机程序给我们看看吧。我给他们看后,发现所谓推理机实际上也就2-300行代码,利用递归写得很精炼。推理机实际上就是“搜索-验证-执行”的递归调用,象搜索部分、验证部分和执行部分也是总控下的递归调用。说完代码的思想,他们对推理机有个基本了解和破除了神秘感,对推理机深入研究和实现有了基础支撑。' m: u N& }- q- F( s" M) t) e# t