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

内容概要:本文详细介绍了如何使用Matlab对地表水源热泵系统进行建模,并采用粒子群算法来优化每小时的制冷量和制热量。首先,文章解释了地表水源热泵的工作原理及其重要性,随后展示了如何设定基本参数并构建热泵机组的基础模型。接着,文章深入探讨了粒子群算法的具体实现步骤,包括参数设置、粒子初始化、适应度评估以及粒子位置和速度的更新规则。为了确保优化的有效性和实用性,文中还讨论了如何处理实际应用中的约束条件,如设备的最大能力和制冷/制热模式之间的互斥关系。此外,作者分享了一些实用技巧,例如引入混合优化方法以加快收敛速度,以及在目标函数中加入额外的惩罚项来减少不必要的模式切换。最终,通过对优化结果的可视化分析,验证了所提出的方法能够显著降低能耗并提高系统的运行效率。 适用人群:从事暖通空调系统设计、优化及相关领域的工程师和技术人员,尤其是那些希望深入了解地表水源热泵系统特性和优化方法的专业人士。 使用场景及目标:适用于需要对地表水源热泵系统进行精确建模和优化的情景,旨在找到既满足建筑负荷需求又能使机组运行在最高效率点的制冷/制热量组合。主要目标是在保证室内舒适度的前提下,最大限度地节约能源并延长设备使用寿命。 其他说明:文中提供的Matlab代码片段可以帮助读者更好地理解和复现整个建模和优化过程。同时,作者强调了在实际工程项目中灵活调整相关参数的重要性,以便获得更好的优化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值