设置

关灯

第拾玖章 范含归来 下(第1/6页)

    一九六八年六月的《美国计算机协会通信》杂志(CommunicationsoftheACM)发表了KenThompson的文章“正则表达式搜索算法”(RegularExpressionSearchAlgorithm)。这是第一篇将正则表达式理论应用于计算领域的文章,在此之前,正则表达式仅仅是纯粹数学家们的分析工具。

    回家之后,范含就看到了这篇文章。

    正则表达式啊,很熟悉呀。前一阵子写解释器的时候,用到了lex和yacc,这两个工具就是利用正则表达式技术进行匹配的。只不过,由于中间过程一直运行在脑子里,别人不知道,看到的仅仅是范含“写”出来的C代码而已。

    几乎所有的有序“符号串”都可以认为是符合某一种“模式”(Pattern),或者说“规则”,这种“规则”的定义就是正则表达式。对于分析字符串的任务,正则表达式是最恰当的方式,当然,也是最强大和最灵活的。

    说来惭愧,范含一直等到听说了Perl,才第一次知道并从此开始使用正则表达式。在那之前,接触的仅仅是“DOS”、“Windows”、“Basic”之流,根本碰不上。尤其是刚用DOS的时候,会写通配符查找文件就已经沾沾自喜了。

    恐怕不光是范含自己,整整这一代人都是这么过来的。归根到底,微软的东西虽然说越来越复杂,但是操作起来却是越来越傻瓜。只要市场调查显示一个“平均”的用户用不到的地方,绝对不会做出来摆在台面上。

    相比之下,老一辈资产阶级程序员都是从文本界面入手。并且,由于这时候是用文本界面操作一切,当然会将其潜力发挥到极致。只要在“文本交互”的前提下,任何可能提高工作效率的技术,都会想方设法实现。

    对了,KenThompson这家伙后来开发的行编辑器“ed”,里面就用到了正则表达式的技术。这时候,一般的计算机还都没有显示器,都是在一台打印终端前面工作。手上啪啪的敲“电传打字机”,眼前就会看到针式打印机嗞嗞的吐出一行。全屏幕编辑?想都别想,就连看全文件内容都不容易。所以,一行一行的编辑看来是唯一选择。

    其实这就是一个观念转变的问题,毕竟这时候显示器又不是没有,只不过不是计算机的“标准配件”而已。前年范含买PDP-8的时候,还特意声明加装显示器模块,因为自己很难想象没有屏幕会是什么样子。这也难怪,范含总是拿微型机的眼光看待问题,如果考虑到现在的情况……许多终端连在另外一间房子里的主机上……没有显示器也不算奇怪。

    到后来,开发MS的时候,显示器就成标配了,哪怕成本高出一块也在所不惜。不过确实没人反对,因为机器的设计就是必须如此,没有显示器就玩不转了。再说,自从范含带头发挥了屏幕的优点(其实就是那几个游戏)之后,“盯着电视干活”的使用方式也渐渐的被业界接受了。

    对于编辑一行的工作,如果只是把正确的内容完全敲进去,工作效率也未免太低。况且,行编辑器一般都是用来进行批处理,比如替换内容,消除不必要的空格之类。这些工作对于每一行而言都是例行公事,所以,既然要找到任务的共同点设计命令,那么正则表达式的采用也是顺理成章。

    在Unix出现之前,许多命令行工具就已经存在了,这些工具的共同点
    (本章未完,请翻页)