罗宾·米尔纳
简介
1958年从剑桥大学国王学院毕业,之后的第一个工作是教师,然后在 Ferranti 公司当程序员。回到学术界,先后在 City 大学,Swansea 大学,斯坦福大学任职。1973年回到英国爱丁堡大学,在爱丁堡大学任职期间,他开发了函数式编程语言,ML,并和他的同事一起完成了 LCF 的开发。在离开爱丁堡前,罗宾·米尔纳向现在的爱丁堡大学信息学院提供了一笔捐款并成立了每年一次在爱丁堡大学信息学院举行的以他名字名名的"罗宾·米尔纳讲座",被邀请的演讲者都是对理论计算机科学有重大贡献的学者。1995年,罗宾·米尔纳回到母校剑桥,并担任剑桥大学计算机实验室主任,现为剑桥大学计算机实验室教授。1991年的图灵奖授予给了爱丁堡大学计算机科学系教授罗宾·米尔纳(Robin Milner)。他是继威尔克斯(M.V.Wilkes, 1967)、威尔金森(J.H.Wilkinson, 1970)和霍尔(C.ARHoare, 1980)之后第四位获此殊荣的英国科学家,这也使英国成为除美国之外获得图灵奖的学者最多的国家。米尔纳的主要贡献在计算机程序设计语言方面,他提出了形式化逻辑系统的一个数学模型 LCF,又主持开发了元语言 ML 并使之标准化。米尔纳还利用代数方法为并发与并行计算创建了一种概念框架系统 CCS,推动并促进了并发与并行计算的发展。
学习
米尔纳生于1934年1月13日,先后在伊顿公学(Eton College)、国王学院(King’s College,图灵也曾在这个学院上学)和剑桥大学接受了高等教育,专业是数学,1957年获得学士学位。他上大学期间曾经接触过由威尔克斯主持研制的世界上第一台存储程序式电子计算机 EDSAC,在它上面编写过程序。但当时米尔纳对计算机并没有重视,也没有表现出很大的兴趣。大学毕业以后,米尔纳当了几年中学数学教师,更是把计算机全抛在脑后。直到1960年米尔纳重新规划自己的未来,到伦敦著名的 Ferranti 公司求职。Ferranti 公司当时正需要计算机编程人员,对有过编程经历的米尔纳表示欢迎,但要求他“把一生都献给计算机”。20世纪60年代初,计算机还没有十分普及。计算机的深刻含意是什么,从事计算机工作有多大前途和机会,这些问题对于绝大多数人来说都是不甚清楚的。因此,对于 Ferranti 公司这一要求,米尔纳也深感迷茫和困惑。所幸的是,米尔纳作出了正确的选择,进入 Ferranti 公司,从而重返计算机领域,并幸运地与计算机科学同步成长起来。但米尔纳在 Ferranti 公司只干了3年,以后就转人大学从事教学与研究。他呆过的大学包括伦敦城市大学,威尔土南部海港城市的斯旺西(Swansea)大学、美国的斯坦福大学。但长期与最后的落脚点则是爱丁堡大学,这是英国最著名、历史最悠久的高等学府之一,有优良的学术传统,在计算机科学,尤其是人工智能领域,其研究工作曾长期处于世界领先水平。
贡献
计算机程序设计语言方面
首先,在计算机程序设计语言方面,米尔纳和戈顿(M.J.Gordon)等人一起提出了形式化逻辑系统的数学模型,实现了他称之为LCF的一个系统——“可计算函数的逻辑”(Logic for Computable Functions)。LCF不但是一种有效的建模工具,还是一种强有力的验证工具,利用它可以方便地验证计算机程序的正确性。由于在利用计算机解决各种各样的具体问题时,建立正确的形式化系统在理论上和实践上都具有重要的意义,因此米尔纳的LCF受到学术界的高度评价。实际上,米尔纳是受斯科特(D.Scott,1976年图灵奖获得者)的影响和启发才从事这一研究的。我们前面已经介绍过,斯科特是研究自动机理论,和拉宾(M.O.Rabin)一起提出了“非确定性”有限状态自动机的著名学者,后来在20世纪60年代又和斯特雷奇(C.Stra-chey, 1916—1975)合作,提出了程序设计语言的“标志语义模型”,为“标志语义学”(又称“指称语义学”或“数学语义学”)奠定了基础,对计算机程序设计语言的发展产生了重大的影响。斯科特曾到牛津大学访问、讲学,米尔纳听了他的讲演,看了他的著作,引起了对这个问题的极大兴趣,从而深入进行研究,并获得成果。20世纪70年代初,米尔纳在斯坦福大学的人工智能实验室作访问学者时,曾用LCF证明了那里的一个很复杂的编译器的正确性,受到有“人工智能之父”之称的麦卡锡(J.McCarthy, 1971年图灵奖获得者)的高度评价。
在斯坦福大学期间,米尔纳学习了由麦卡锡主持开发的函数式人工智能程序设计语言LISP,这使他受到很大启发,进一步打开了他的思路和智慧之窗。回到爱丁堡大学以后,他借鉴LISP的经验,在LCF的基础上,花了几年的时间,开发成功了一个更加重要的系统,即ML,也就是元语言(meta language),一种用来描述、表达与验证其他语言的语言。ML是一种强多态类型的语言,一个ML程序也就是一个包含变量定义和函数作用的表达式序列,具有比LCF更强的推理能力。ML有时也被称为函数式语言,但与纯函数式语言有所不同,因为它具有引用的概念,即变量是可以赋值的。此外,它的输入/输出系统也引入了副作用。
ML取得成功以后,米尔纳致力于使它国际化和标准化。在他的努力下,1984年成立了一个包括爱丁堡大学、剑桥大学和贝尔实验室等知名高等学府和研究机构的专家在内的15人工作小组,采取通过电子邮件交换意见进行设计的方式工作。20世纪90年代初标准ML即SML问世。SML具有高阶函数功能、I/0机制、参数化的模块系统和完善的类型系统。比如计算1+2+3+…+100的值的SML程序如下所示:
并发计算和并行计算
米尔纳另一方面的贡献是关于并发计算(concurrentcomputing)和并行计算(parallelcomputing)的。由于并发与并行计算与传统的串行计算(sequentialcomputing)有着本质上的不同,其复杂程度大大增加,无法用后者的方法和术语表达前者的意义。严格说来,所谓两个事件是“并发”的,是指一个系统内部发生的这两个事件之间没有因果关系,并非先后关系(当然,有因果关系者必有先后关系,但有先后关系者不一定有因果关系)。并发概念由发明著名的“佩特里网”的 C.A.Petri 于1962年首先严格定义并建立了模型。至于“并行”,指的是利用多个处理机或其他功能部件同时工作以提高系统性能或可靠性,冯·诺伊曼在20世纪40年代提出细胞自动机可认为是并行计算思想的开端。米尔纳经过深入研究,提出了一种新的观点,把可以按任意次序在系统内发生的两个事件定义为并发事件,称之为“交叠式并发”,而佩特里定义的严格并发则称为“真并发”。在交叠式并发概念的基础上,米尔纳利用代数方法创造了一种用于建立并发与并行计算的概念框架的系统叫“通信系统演算” CCS(Calculus of communicating systems)。CCS与霍尔(C.A.R.Hoare,1980年图灵奖获得者)所创建的“通信顺序进程"CSP(Communicating Sequential Process)是最典型的两个描述性并发模型,即进程代数模型,都以进程及进程间的通信为主要描述对象,系统中的事件就是进程通信,特别适合于描述分布式系统。CCS已经成功地用来解释用于书写通信协议规约的国际标准语言 Lotos,而 Lotos 则已用于面向对象的 ROOA 方法中,用来描述面向对象需求定义中的抽象数据类型和进程定义。CCS 本身虽然只有交叠式语义,但利用一些特殊的方法,如多层佩特里网方法,也可以建立起一个完整的真并发语义,因此具有很重要的价值。
米尔纳在学术上的一个特点是十分注意打好基础,精益求精。他主持开发和标准化的ML被认为是定义得最完善,最无懈可击,结构最优美、和谐而又最短小、精悍的语言之一。在作风上,米尔纳谦虚谨慎,从善如流,非常注意听取和吸收合作者的意见。例如,标准ML有允许设计“大模块”程序的功能,就是米尔纳根据贝尔实验室的麦克奎因(D.MacQueen)所提出的构思实现的。ML原先是一个专用语言,意大利学者鲁卡·凯德利(LucaCardelli,当时还是一个正在写博士论文的研究生)实现了ML的一个扩充版本,使之更适合于教学。米尔纳看到以后十分赞赏,在它的基础上把 ML 进一步发展为一个通用语言。米尔纳的成功与他的这些优秀品格是分不开的。
著作
米尔纳的著作基本上就是他的成果的反映,主要有:《通信系统演算》(Calculus of Communicating Systems, Spnnger’ 1980)《通信与并发》(Communication and Concurrency, Prentice-Hall, 1989)《标准ML的定义》(The Definition of Standard ML, MITh. , 1990)《对标准ML的说明》(Commentary on Standard ML, MITpr, 1991; Revisededition, 1997)此外,1996年,米尔纳和旺德(1.Wand)还合编了一本《明天的计算:计算机科学未来的研究方向》 (ComputingTomorrow: FutureResearchDirectionsinComputerScience, CambridgeUnipr. ),书中有包括米尔纳自己撰写的一篇文章在内的总共16篇文章,都是计算机科学各方面的专家撰写的,论述了在计算复杂性、软件工程、并行计算、自然语言处理、数据库、知识重用、实时计算、安全、通信、交互计算、人工智能等各分支中未来研究的方向和重要课题,很值得重视。
演说
米尔纳在接受图灵奖时发表了题为“交互的原理”(Elements of Interaction)的演说,并接受了记者的采访。演说全文以及与记者的对话刊载于1996年1月的 Communications of ACM,78~97页。在与记者的谈话中,米尔纳表达了这样一个观点,即计算机科学既是理论性很强的科学,又是与应用和实践密切联系着的科学。因此,任何希望在这一领域取得成功的年轻人,必须十分重视把理论与实践结合起来。他送给年轻人这样一个忠告:“不要丢失连接!”(Don’t lose the link!)。大家知道,“连接”(link)在计算机专业中是一个十分基本而重要的概念,任何高级语言程序在编译以后如果不经过连接,都是不能运行的。因此米尔纳用这句话来勉励年轻的计算机科学工作者,真是意味深长的。
实验室
米尔纳在爱丁堡大学任教20多年,并于1986年创建了该校的计算机科学基础实验室)(Laboratory for Foundations of Computer Science),并出任主任,英国科学与工程研究院对该所有长期的支持。最近米尔纳已离开爱丁堡,转至剑桥大学的计算实验室。