Prof. Tony Hoare on Concurrency

下面的文字是Erlang Solutions对Tony Hoare教授的采访内容。我在看视频的时候,将这些内容记了下来。非常难得的一段史料。该采访的文字稿在Erlang Solutions Blog上有放出来,请以视频和博客上的文字为准。

I’m Tony Hoare. I’m honorary member of the Cambridge University computing laboratory where this interview is being recorded. I’d like to tell you something about how I got interested in concurrency as a subject from my research and what the influences were in the development of my thinking about this subject. In 1960, I got my first job as a programmer in a small computer manufacturer and led a small team for the implementation of a programming language, a new programming language at that time called AlGOL 60. The project was successfully delivered and after that the company decided that it would need an operating system for its new computer and I was put in charge of its design and its development. Unfortunately the operating system two years later turned out to be undeliverable .It was just notoriously slow. But I put the cause of my failure down to the fact that I didn’t understand concurrency. So this was one of the motivations which led me in 1968 to change my profession and join a university as professor of computation at the Queen’s University in Belfast.

One of the objectives of my research I made was the exploration of what concurrency really meant and how to tame it. In 1965 I was had met Ole-Johan Dahl and Kristen Nygaard who were the designer of a language called Simula 67 which had an enormous influence on the propagation of ideas of object-oriented programming and it impressed me greatly. They had a concept of timing which was implemented as a simulated time chain in the way that is completely standard nowadays so that gives a framework within which one could explore the meaning of real concurrency. Then I had joined the Queen’s University in Belfast. I teamed up with a colleague Jim Welsh to design a new version of Pascal language was then current for implementation of compilers and other software to design a new version which would import some part of the class structure of Simula 67. It was called Pascal plus and Jim Welsh wrote its compiler and tested it and delivered it. Rather splendid exercise because he test, he only ever found one fault. I’m sorry … He found one fault in the compiler that he’d written is was a null reference fault but otherwise he had implemented the language completely from its specification and without testing it any part of the implementation before putting it all together and compiling it. It was the only other Pascal compiler that was in existence at that time and produced a running compiler which we used and I used that compiler an idea which was based on the similar class concept called the monitor. … The monitor was essentially a single object which would accept method calls with an object with many variables methods and would accept calls from many concurrent callers. It was protected automatically by an exclusion mechanism so that the calls could not be similar simultaneous. Using that language I wrote with the help of a colleague Mike Mckeag a thing which we called the structured operating system and gave a course on the structured operating system at a summer school in Marktoberdorf in Bavaria and the director of the summer school was one Edsger W. Dijkstra well known worldwide and a very good friend of mine he was and he told me after I gave the course of lectures that he thought maybe I had the germ of a good idea here which was … it was was with high praise. But he said the notation is terrible we need to design a different notation so when we had a free afternoon we went and sat in our hotel garden and talked about the design of what eventually turned out to be CSP where there were many many objects processes running concurrently and communicating with each other by message passing rather than just by method calls and that was crucial. After this discussion with Dijkstra, I worked continuously I made this my most interesting research project and I worked on it for three years before the publication of an article describing my ideas under the title communicating sequential processes published in the communication in the ACM. It had taken me three years to write that article and one of the years was full time research. So perhaps it was a just reward ant that it was a very widely referenced article and still is gathering references I believe about 2,000 references a year but I still felt I needed to have an exact definition of what the semantics of this language was sufficiently complete and precise that I could use it for specifying and proving the correctness of programs written in this language and so in 1977 I moved to Oxford University where I met Dana Stewart Scott and I learned something about denotational semantics as a way of describing the meaning of programming languages I slightly adapted his semantics into trace semantics and worked out some really remarkably simple semantics for CSP of a conditional correctness variety it was a very good approximation but it didn’t allow the proof of termination and it assumed and it didn’t properly model deadlock as a phenomenon which could not be recovered from. Fortunately I had two very good students at Oxford mathematics graduates Bill Roscoe and Stephen Brookes and I got them to help me working out the theory of this language which they did very successfully and we published we published an article in … sorry I forgot where and both Roscoe and Brookes have worked like I have for long period on pursuing their research into the theory of CSP. Bill Roscoe in particular has published two substantial monograph on the subject and has built it into an automatic tool which will help in getting correct programs written in a CSP language the extended of the language very usefully and he implemented it well many times improved it enormously through a period of about thirty five years of development and this is now I think one of the fastest proof checkers for concurrent programs that exists in the world today and the world today is I think where I will leave this story. Thank you very much.

references
[1] Jim Welsh
[2] CSP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值