
Karen Frenkel: Please describe, in the simplest terms possible, the essence of Logical for Com- putable Functions (LCF). RObin MIIner: I came quite late to research. I taught for five years in City University in London, and before that I'd worked for three years for Ferranti Com- puters, where I did some program- ming. While I was teaching at City University, I became interested in artificial intelligence, but also in what programming means. I also got interested in mathematical logic, but all of these were separate threads. KF: That would have been in the late 1960s? An interview with RM: Yes, from 1960 to 1963, I was at Ferranti, and from 1963 to 1968, I was at City University. Then I got a chance to do a full-time research post with David Cooper who was head of the computer science department at Swansea College in the University of Wales. Under the stimulus of David, I worked on understanding programming and program verifica- tion. I wrote myself a small theorem- proving program. At that time, there was a tremendous research effort in mathematical theorem prov- ing, trying to do automatically what mathematicians have done with deep thought over the centuries. Another thread was stimulated by the work of Michael Paterson, who had written a wonderful thesis on program schematology--part of his joint work with David Luckham and David Park. That thread was the study of the shapes of different pro- grams as opposed to their content, or put another way, studying the general shape of their evaluation structure as opposed to the actual numbers that they were processing. The work of Paterson and Cooper made me want to understand how you could verify computer programs. Pioneering work had recently been done by Bob Floyd at Stanford and by Tony Hoare in Britain. ~0 January 1993/Vol.36, No.l /COMMUNICATION| OP TNiACM n ilner COImlmUlUC~T|ONSOFTHIEAClm/~anuary19931Vol.36, No.l ~J My first attempt was to take a sim- tions of computer science, or mean- ple program--many people were ings of programming languages, doing similar work at that time--and along with the artificial intelligence. extract from it what you would need But we all need, in order to satisfy to prove that it was working prop- our funding agencies, something erly. Those were called verification that actually runs and buzzes and conditions. They were fed into an whistles, something that actually con- automatic theorem-proving program vinces them that not only are we try- that would then prove that the origi- ing to understand computers but nal program was working properly. [that] we're also using them; you This ran into the sand because it is have to make your work concrete in far too difficult for a computer to do. order to get credibility. I remember a Human intelligence must accompany meeting in McCarthy's AI lab where we use the business of verifying that pro- we were all wondering what imple- the term grams, which are human construc- mentation should be done next to get tions, actually work. So, I wasn't sure machines to help in understanding "'metalanguage'" how human assistance could be our own software activities. I was the for a brought to bear on this in a rigorous new boy, and I actually wanted to do way. the next implementation because I language Then I learned of Dana Scott, realized that Scott's work was just that talks who, with Christopher Strachey, waiting to go into a computer pro- went into the foundations of pro- gram that would then help us to rea- about Other gramming languages. I not only had son about other computer programs. languages. some discussion with Strachey about So I said, "I'll implement Scott's programming languages, I also lis- logic." That was exciting because That's why ML tened to Scott's lectures while he was Scott had created something more came into visiting Oxford University and read general than most people realized. his writings. It was a very exciting We worked on proving that a com- existence. time, because together they began to piler was correct. If you write a pro- work out the mathematical meaning gram in a high-level programming of programming languages. language, it's then converted by the I hoped to start from the very rock compiler into a low-level program. bottom with the mathematical mean- That shouldn't change the meaning. ing of languages, and use that as a If it does, that's a disaster. So one of firm foundation for reasoning about the first things you must do is show computer programs that anyone that the translation is correct. Mc- might have written. I wondered how Carthy and his students had done one might do this. And Scott actually some initial case studies on this. And gave the hint by building, so to speak, we proved with LCF the correctness some of his mathematical models of a more complex compiler, which into a formal logical system that worked with a richer language. I could be used as a basis for computer hadn't realized that was going to be assistance. When you want to get a possible. To me, it was part of the computer to assist with something, it general activity of eventually reach- has to be formal; it has to be exact. ing something that ordinary pro- The way it's going to help must be grammers could use to check out absolutely formal. Scott didn't actu- their own programs. ally call it the Logic for Computable Functions. I called it that. But he Designing ML embedded some of his mathematical KF: Did you try your proof techniques on understanding in this formal, logical certain languages already in existence system. when you were ~zt Stanford? I was very excited about this. I RM: Yes, and I'd also tried that at went to Stanford University in 1971, Swansea, but I rapidly began trying and got the chance to work with John to prove properties of whole lan- McCarthy in his artificial intelligence guages, so I wasn't focused on a par- lab. When I arrived, it was quite ticular language. McCarthy, (Allan) amusing because they wanted to do Newell, and (Herb) Simon's lan- this kind of work, but they were also guage, LISP, was a wonderful tool very keen to do some practical work. with which to write all the software There was a lot of work on founda- that would eventually do this verifi- 92 January 1993/Vol.36, No.l /COMHUNICATIONSOPTHBACiR cation. So McCarthy's laboratory and languages avoid talking certain kinds he'd finished it. Nobody ever found McCarthy himself were a wonderful of nonsense. But it also had to be any mistakes in it. It was the first liaison for me because LISP process- very flexible because it was actually implementation of ML. And Newey ing was a wonderful vehicle for what going to be used, and I didn't want to and I worked on other parts of the you might call nonnumerical pro- design a language that would slow implementation as well. gramming--programming which me down. It had to have certain fea- When Wadsworth and Gordon realizes different forms of thinking tures that were at the frontier of pro- came, we developed the language than numerical mathematics. That gramming language design, such as more carefully so that it could serve was a vehicle for doing all my work. higher-order functions of the great- as a basis for really big reasoning In fact, LISP led to the design of est possible power, and also side ef- projects. At that point, the project Metalanguage (ML). fects and exceptions. An exception is divided; the reasoning work went on I left Stanford after two years, just a way of getting out of something along one line, and language devel- having had reasonable success with that you shouldn't be doing because opment of ML itself went along an- this reasoning tool. But it was very it's not working. Since strategies other. ML went from being a special rigid. That is, the way I could inter- don't work every so often, you use an language for this particular task to a act with this machine in helping me exception to say, "Wrap this up. I'm general language. And that hap- to reason, was that I could ask it to do going to try something else." In a pened in a beautiful, but unplanned certain formal transformations, and programming language, an excep- way. One now-famous contributor it would do them correctly. By the tion is absolutely vital. And it was was an Italian graduate student, way, the real pioneer of machine- vital for this particular application. Luca Cardelli, who wanted a lan- assisted reasoning was deBruijn in All of this directed the design of guage for his Ph.D. work, so he im- Holland who invented his Automath ML, which occurred in Edinburgh plemented an extension of ML. system before this; I didn't know with other colleagues from 1974 Then somebody else discovered this about it at the time. onward. was a good language to teach to stu- But the way that I wanted LCF to Xlm: That was a 12-year project? dents. It then began a life as a gen- help in the reasoning business was Ha: Yes, ML began just as a vehicle eral-purpose language because we this: If you've got a machine helping for communicating proof strategies started teaching it to second-year you, you want to not only get it to within the LCF work.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages8 Page
-
File Size-