打字猴:1.70043705e+09
1700437050
1700437051 还有一些尚未提及的重要语言也源自1127中心。
1700437052
1700437053 斯图·费尔德曼和彼得·温伯格编写了首个Fortran 77编译器f77。作为一种语言,尽管它仍然没有一套合理的控制流语句,但Fortran 77比我拿来搞Ratfor的Fortran 66还是要好一些。不管怎么说,创造f77富有挑战性,但也物有所值,因为它被1127中心的数值分析人员在PDP-11和VAX上大量使用。
1700437054
1700437055 在做与f77相关的工作时,斯图和戴夫·盖伊(Dave Gay)编写了f2c。f2c的功能是将Fortran翻译成C语言,从而使得在没有Fortran编译器或Fortran编译器索价过高的系统上使用Fortran成为可能。
1700437056
1700437057 杰勒德·霍尔兹曼(图5-16)是从代尔夫特理工大学离职后加入1127中心的。他一直爱好摄影。20世纪80年代初,他提出一种编程语言,用于对数字图像文件进行算法转换。他把它称为Pico:
1700437058
1700437059
1700437060
1700437061
1700437062 图5-16 杰勒德·霍尔兹曼,约1981年(杰勒德·霍尔兹曼供图)
1700437063
1700437064 “原本这个名字表明了它的大小[15],后来更容易被理解为‘picture composition’(画面构成)的缩写。”
1700437065
1700437066 Pico是模式-动作语言的另一个例子。它根据用户定义的表达式评估原始图像中的每个像素,定义新图像;表达式可以是数值、坐标、各种函数和其他图像的一部分。这些表达式会导致有趣的变换,其中许多表达式出现在杰勒德于1988年出版的Beyond Photography一书中,用来描述和说明Pico。(图5-17所示为其中一个例子。)毫不奇怪,Pico是用C语言和Yacc语法分析器实现的。
1700437067
1700437068
1700437069
1700437070
1700437071 图5-17 杰勒德·霍尔兹曼,使用Pico转换而成
1700437072
1700437073 杰勒德还创造了基于专用语言的专业工具Spin,用于分析和检查涉及独立通信进程的软件系统。Spin可以验证某个系统在逻辑上是否正确,有没有死锁、停顿之类缺陷。(“你先请。”“不,你先请。”)Spin是1127中心研究如何呈现独立进程随着时间推移相互作用的范例,也体现了一流的软件工程如何做出易于使用、运行速度足够快的系统。Spin模型是用另一种叫作Promela(protocol metalanguage,意为“协议元语言”)的特殊用途语言编写。Promela也是用Yacc实现的。
1700437074
1700437075 Spin仍在蓬勃发展,它已安装到数千台设备上,还举办用户年度会议。它被用于验证大量的系统,覆盖从硬件设计到铁路信号协议的各种场景。
1700437076
1700437077 鲍勃·福勒(Bob Fourer)、戴夫·盖伊和我设计并实现了AMPL,这是一种像线性规划那样定义优化问题的语言。鲍勃是美国西北大学的管理科学和运筹学教授,长期以来一直致力于帮助人们创建数学优化模型。我们关于AMPL的工作始于1984年他来实验室休研究假的时候。
1700437078
1700437079 AMPL可以很容易地定义用于描述特定优化问题的模型,如给定运输成本、每间商店的预期销售额、每家工厂的生产能力等数据,寻找将货物从工厂运到商店的最佳方式。优化问题用代数符号写成,描述必须满足的约束条件系统,和要最大化或最小化的目标函数。
1700437080
1700437081 类似这样的优化问题触及许多行业的业务核心:航空公司机组调度,制造、运输和配送,库存控制,广告投放以及其他各种大量应用。
1700437082
1700437083 我用C++写了最初的AMPL实现,还用到Yacc语法和(我想)用于词法分析的Lex。这是我写的第一个正经C++程序,不过我很快就把代码移交给了戴夫·盖伊。
1700437084
1700437085 AMPL也许是唯一广泛使用的源自1127中心的专有语言。(语言本身不受版权保护,但据我所知,目前还没有开源的实现。)AT&T在AMPL创建几年后就开始向其他公司授权。戴夫和我从贝尔实验室退休后,我们3个人成立了一家小公司,专注AMPL优化,继续AMPL的开发和营销。最终,我们从贝尔实验室购买了产权,这样我们就可以走自己的路。公司规模仍然很小,但在其利基市场上是重要玩家。
1700437086
1700437087 20世纪80年代初,罗布·派克(图5-18)和卢卡·卡德利(Luca Cardelli)试验了为并发设计的语言,这种语言尤其关注与鼠标和键盘等输入设备的交互,因此得名Squeak[16](以及后来的Newsqueak)。Newsqueak的概念最终融入Plan 9中使用的并发语言Limbo和Alef,10年后又为Go语言所采纳。Go语言由罗布·派克、肯·汤普森和罗伯特·格里塞默于2008年在谷歌公司创建。
1700437088
1700437089
1700437090
1700437091
1700437092 图5-18 罗布·派克,约1981年(杰勒德·霍尔兹曼供图)
1700437093
1700437094
1700437095
1700437096
1700437097 UNIX传奇:历史与回忆 [:1700434704]
1700437098 UNIX传奇:历史与回忆 5.6 其他贡献
1700437099
[ 上一页 ]  [ :1.70043705e+09 ]  [ 下一页 ]