← 返回展厅
TRAC

TRAC

年份:1962
平台:MAINFRAME
开发者:Calvin Mooers

革命性的文本处理语言,开创了宏编程和交互式编辑先河。

浏览:29
点赞:0

展品故事

1962年,当大多数人对计算机的认知还停留在打孔卡片和批处理作业时,一台IBM 7090大型机正在运行着一种完全不同的语言。它的用户不是穿着白大褂的操作员,而是一位坐在电传打字机前的程序员。他敲击键盘,屏幕上立即出现回应——不是等待数小时后的打印输出,而是即时的、交互式的反馈。这台机器运行的,就是Calvin Mooers发明的TRAC语言。\n\n要理解TRAC的革命性,必须先回到那个时代的技术荒漠。1962年的计算机世界,是FORTRAN和COBOL的天下。FORTRAN擅长数值计算,COBOL处理商业数据,但它们都有一个共同点:程序是静态的,一旦写好提交,就只能等待结果。用户与计算机的交互,是通过打孔卡片或纸带完成的。你提交一叠卡片,等上几个小时甚至一天,才能拿到打印出来的结果。如果程序有错,一切重来。这种批处理模式,就像你写了一封信寄出去,然后等回信一样缓慢而笨拙。\n\n更关键的是,这些语言都建立在“数据类型”的基石上。FORTRAN有整数、浮点数、数组,COBOL有记录、文件。程序员必须事先声明每个变量的类型,计算机才能知道如何存储和操作它们。这种思维方式源自数学和会计,却忽略了计算机最本质的能力:处理符号。在1950年代末,人工智能先驱们已经在探索符号处理,比如John McCarthy的LISP语言(1958年发布),但它专注于列表结构,且运行在昂贵的专用硬件上。文本处理,这个今天看来理所当然的功能,当时还没有专属的语言。\n\n正是在这样的背景下,Calvin Mooers站了出来。他不是一个典型的计算机科学家。Mooers在1940年代学习数学和物理学,但很快转向了信息检索领域。1950年,他发明了“描述符”(descriptor)系统,即用关键词索引文档的方法,这比后来的搜索引擎早了数十年。1951年,他甚至创造了“信息检索”(information retrieval)这个术语。Mooers对文本有着近乎偏执的热爱,他认为计算机最应该做的是处理人类语言,而不是数字。\n\n1959年,Mooers加入了一家名为“Rockford Research Institute”的小型机构,担任副总裁。他的实验室里有一台IBM 7090,但这台机器运行的是标准的批处理系统。Mooers想要的是交互式编程——就像你对着机器说话,它立刻回答。这在当时几乎是天方夜谭。大型机昂贵且稀缺,操作员们习惯于把卡片塞进读卡器然后去喝咖啡。没有人相信用户应该坐在终端前实时操作。\n\n但Mooers没有放弃。他花了三年时间,在IBM 7090上开发了TRAC语言的原型。TRAC的全称是“Text Reckoning and Compiling language”,即文本记录与转换语言。这个名字本身就透露了它的野心:它不关心数字,不关心数据结构,只关心文本。在TRAC的世界里,一切都是字符串。没有整数类型,没有浮点数类型,没有数组——只有字符序列。甚至连程序本身也是字符串。这种设计在今天看来或许简单,但在1962年,它是对整个编程范式的颠覆。\n\nTRAC的核心创新在于“宏”(macro)。但这里的宏不是C语言中那种简单的文本替换,而是一种可嵌套、可递归、可动态定义的函数。在TRAC中,你用\ 在语言哲学与设计上,TRAC 的核心创新是“宏(macro)”,但这里的宏不是 C 语言式简单文本替换,而是可嵌套、可递归、可动态定义的函数;在 TRAC 中一切皆字符串——没有整数、浮点、数组类型,连程序本身也是字符串。这种“纯符号处理”的起点,使它比同时代语言更接近今天我们对“可编程文本”的想象。Mooers 还提出著名的“TRAC 原则”:用户应当能像读文档一样读程序,程序即数据。这与他早年发明“描述符(descriptor)”信息检索系统、创造“信息检索(information retrieval)”一词一脉相承——他始终认为计算机最该处理的是人类语言而非数字。 在历史坐标与影响上,TRAC 由 Calvin Mooers 在 1960 年代初于 IBM 7090 上开发,是早期交互式编程的罕见尝试,比批处理主流早一步想象“人机对话”。它影响了后来的宏处理与文本处理工具,其“一切皆字符串”的思想在 Unix 的宏处理器(如 m4)与今天的模板引擎中仍可辨踪迹。Mooers 晚年通过 TRAC Foundation 维护语言标准,使其在小众但忠诚的爱好者中延续。 从“我们能学到什么”的角度,TRAC 提醒我们:编程语言的设计选择,本质上是对“计算机该为谁服务”的回答。在一个被数值计算与商业数据统治的时代,Mooers 固执地相信文本与符号才是计算机的应许之地——这种近乎偏执的远见,比很多“成功”的语言更具思想实验的价值。它告诉我们,被时代低估的方向,有时恰恰预言了未来。 把 TRAC 与今天大行其道的“模板引擎”与“领域特定语言”对照,会发现 Mooers 的远见格外清晰。现代 Web 开发中,Jinja、Handlebars、Liquid 等模板语言本质上都是“文本进、文本出”的宏系统,其“一切皆字符串、可递归展开”的内核,与 TRAC 的宏哲学一脉相承;而今日无数“配置即代码”的实践,也可看作是“用声明式文本描述系统行为”这一思路的延续。TRAC 当年的弱势——运行在昂贵的主机、缺乏生态、作者远离主流学术圈——使它未能普及,但思想却悄悄渗透。Mooers 一生执拗地捍卫“文本才是计算机的本分”,甚至与人工智能的符号派遥相呼应。今天当我们谈论“提示词工程”把自然语言当程序使用时,某种程度上正回到 TRAC 的原点:用符号与字符串编排机器的行为。历史常以迂回的方式,把被冷落的洞见重新递回我们手中。

详细介绍

TRAC 革命性的文本处理语言,开创了宏编程和交互式编辑先河。 ## 背景 TRAC(Text Reckoning And Compiling)语言由Calvin Mooers于1962年开发,是早期面向文本处理的编程语言之一。Mooers曾在麻省理工学院(MIT)参与Whirlwind计算机项目,后转向信息检索与文本处理领域。当时计算机主要用于数值计算,文本处理能力极为薄弱,缺乏字符串操作、宏展开等基础功能。Mooers意识到文本处理将成为计算机的重要应用方向,于是设计了TRAC语言,其核心思想是通过“过程”和“宏”机制实现文本的递归处理。技术挑战包括:在有限的内存(当时计算机内存通常只有几KB)中实现高效的字符串操作;设计一种既能表达复杂文本变换又易于理解的语法;以及处理嵌套宏展开时的性能问题。Mooers在1962年的美国计算机联合会(ACM)会议上首次展示了TRAC,并发表了相关论文。 ## 人物与公司 Calvin Mooers(1919–1994)是美国计算机科学家,以信息检索领域的“Mooers定律”闻名(即用户倾向于使用最小努力获取信息)。他于1940年代在MIT参与Whirlwind项目,1950年代创立了Zator公司,专注于信息检索系统。Zator开发了基于穿孔卡片的文本检索系统,但商业上并不成功。Mooers后来在波士顿大学任教,并继续研究文本处理。TRAC语言是他个人兴趣的产物,未依托大型公司开发。Zator公司虽未成为行业巨头,但Mooers的个人贡献被信息科学界铭记。 ## Industry Impact TRAC是文本处理语言的先驱,直接影响了后来的TECO、sed、awk以及Perl等语言。其宏展开机制和递归文本处理思想为现代模板引擎和预处理器(如M4、C预处理器)奠定了基础。在信息检索领域,TRAC启发了早期的全文检索系统设计。尽管TRAC未成为主流商业产品,但其理念在学术界和早期黑客社区中广泛传播,推动了“文本即代码”的编程范式。市场方面,TRAC的出现预示了文本处理软件(如字处理、文档格式化)的潜在需求,间接促进了IBM等公司对文本处理功能的重视。 ## Technical Details TRAC的核心创新包括:1) 纯文本处理范式,所有数据均为字符串,无数值类型;2) 宏展开机制,允许字符串替换和递归调用;3) 过程定义与调用,通过`#`符号标识过程名;4) 栈式执行环境,支持嵌套宏展开;5) 输入输出操作与文件系统交互。架构上,TRAC采用解释执行,语法简单(如`(proc arg1 arg2)`形式),但运行时需维护宏展开栈。技术挑战在于:在1960年代初期的硬件上实现高效的字符串匹配和内存管理,Mooers采用链表存储字符串,并设计了垃圾回收机制。 ## 时代背景 计算先驱时代(1940-1960年代),电子计算机从理论走向实践。 ## 关键人物 这一时代的关键人物包括:Alan Turing(计算理论、密码破译)、John von Neumann(存储程序架构)、Grace Hopper(编译器、COBOL)、Howard Aiken(Harvard Mark I)、Tommy Flowers(Colossus)、Konrad Zuse(Z系列计算机)、John Mauchly 和 J. Presper Eckert(ENIAC),以及 Norbert Wiener(控制论)。 ## 历史遗产 这一时代开发的技术和架构——冯·诺依曼架构、磁芯存储器、第一批编译器以及存储程序的概念——至今仍是每台计算机的基础。

深度研究

影响力评价

技术影响商业影响文化影响用户规模108108
9.0
综合影响力评分
评分基于技术、商业、文化、用户四个维度的综合考量
🔧技术创新
卓越10/10

对技术发展和工程实践的推动程度

💼商业影响
显著8/10

对商业模式和市场格局的影响深度

🎭文化遗产
卓越10/10

在科技文化和社会层面的持久影响力

👥用户覆盖
显著8/10

用户群体的广度和普及程度

评论区 (0)

登录 后参与评论

加载中...