Slashdot Mirror


Interview With Turing-Award Winner Robin Milner

Martin Berger writes "Turing Award (1991) winner Robin Milner is one of the most influential computer scientists. He may not be as well-known as he deserves to be, but his research contributions are ubiquitous: he developed the first mathematically sound yet practical tool for machine assisted proof construction. This research has been continued successfully and led to many useful proof assistants such as HOL, Coq or Isabelle that are being used heavily for verification purposes today." Read on for more information about Milner, and a link to Berger's excellent interview with him. Berger continues "There is also a direct line from this strand of Milner's work to what may be one of the hottest topics in computer science: proof carrying code. Milner also headed the effort to develop ML (best known today by its descendant Ocaml), the first language to include polymorphic type inference together with type-safe exception-handling and module mechanisms. Most modern programming languages can trace some of their advanced features directly back to ML's pioneering efforts. Most of all, he established concurrency theory as a scientific field by creating and studying idealised concurrent programming languages like the Pi-Calculus. That calculus is becoming more and more influential in the design of new programming languages (for example Microsoft's XLANG) and the WWW infrastructure. A few weeks ago, I interviewed Milner. I wanted to find out about the man and the stories behind all this great research. I hope you find it as interesting as I do. The transcript of the interview can be found here."

132 comments

  1. So he's the one by bsharitt · · Score: 4, Funny

    So he's the reason I have to take so much calculus to be a computer programmer.

    1. Re:So he's the one by pheared · · Score: 1

      s/programmer/scientist/

    2. Re:So he's the one by Jagasian · · Score: 4, Insightful

      First we should make the distinction between Integral Calculus and other calculi such as the pi-calculi and the lambda-calculi. The Integral Calculus can be categorized as continous math, while the pi and lambda calculi can be put under the label of "discrete math" as both pi and lambda calculi are term rewrite systems.

      I am still trying to figure out why Integral Calculus is forced down everyone's throat. Computer Scientists are better off studying proof theory, axiomatic set theory, lambda-calculi, etc...

      There are subfields within CS that make use of Integral Calculus... but most subfields of CS do not use it and instead use things like proof theory, set theory, etc.

      One thing that you have to understand is that there are still people out there that think that "math" means numbers, and therefore sophisticated numerical math such as the Integral Calculus is crammed down everyone's throats. I think that for most people, a more conceptual math based on category theory or set theory or somesuch would be far more useful in the long run.

    3. Re:So he's the one by Anonymous Coward · · Score: 0

      you're the coolest there is in town
      pumping ipod while jogging around
      elitest snob with 40gig of sound
      spent five hundred just another dumb snook
      sold your soul to the biggest corporations on the books
      micro-soft starbucks mcdonalds list them down
      elitest snob with 40gig of sound
      drink that coffee drink it down

    4. Re:So he's the one by William+G.+Davis · · Score: 1
    5. Re:So he's the one by Anonymous Coward · · Score: 1, Insightful

      as both pi and lambda calculi are term rewrite systems.

      i'm not sure calculi like lambda or pi can easily be classified as term rewrite systems because of (1) alpha conversion, i.e. renaming of bound variables; and (2) because of all the coinductive stuff that you have in the definition of the congruence relations that you use to quotient the syntax with ...

    6. Re:So he's the one by Haeleth · · Score: 1

      It surprises me that a Lisp advocate would refer to what he does as making "beautiful" software.

      Or should that be "(surprises (would (a Lisp advocate) (refer-to (does what he) (making beautiful software))) me)"? :p

    7. Re:So he's the one by Anonymous Coward · · Score: 0


      you need to put your talent and go on the next American Idol and stop wasting your time on slashdot.

    8. Re:So he's the one by Anonymous Coward · · Score: 0

      I feel a "(In (Soviet (Massachussets)))" meme brewing!

    9. Re:So he's the one by Anonymous Coward · · Score: 0

      I am still trying to figure out why Integral Calculus is forced down everyone's throat. Computer Scientists are better off studying proof theory, axiomatic set theory, lambda-calculi, etc...

      One reason is tradition. another is to do with what is taught at high-school. until recently that was mostly continuous maths. but this is changing now. as kids have lots of computer experience, things like lambda/pi calculi or proof theory can be connected much more easily with students intitions. that should make teaching easier ... not sure about category theory though!

    10. Re:So he's the one by Com2Kid · · Score: 4, Insightful
      • I am still trying to figure out why Integral Calculus is forced down everyone's throat.


      Because Differential/Integral Calculus makes up the basis of, well, everything. Understanding D&I Calculus has allowed me to grasp both concepts that I could sort of understand, but never really comprehend, and new ideas that have expanded my awareness of the world around me.

      For starters, lines, curves, and surfaces, the very basics of geometrical mathematics, has differentials and integrals as a fundamental idea that surrounds it completely. As a person who enjoys doing 3D modeling and is currently hired as a writter of 3D tutorials, Calculus has enabled me to have such a deep understanding of the material that I am able to explain it to others with ease, including those who have not had calculus or even trig classes!

      Second off, Calculus relates to Physics. Anyone can be taught to memorize Physics equations, but once you know calculus, you can derive them yourself! It is a far better feeling to have a good solid theoretical understanding of the material being covered rather than just saying "well this equation fits to the data decently well so it must be true."

      The first, is a scientific mind set. The second is what a business major learns.

      Continuing on the physics note, Calculus is used in an understanding of how the basic fundamentals of computers work. Being able to say "take the derivative of it here" and have it make sense, ah, a lovely thing. Hell, anytime you have units and notation being thrown around, Calculus can make itself handy. A lot of relationships in the natural world only show up if you understand what taking the differential or the integral of something does to its units.

      Then there is Linear Algebra, which is VERY fundamental to computers. Matrixes are used throughout computers of all types and sizes, (with some limited exceptions, yes yes ), teaching Linear Algebra becomes far easier if the students are required to learn Calculus first. Heck everything becomes easier after Calculus is learned.

      You are also ignoring that, at its heart, all mathematics are related. The more a person understands in any field of mathematics, the more they can learn in all other fields. Calculus forms an excellent base for more knowledge to be built upon, and even if sight of that base is (unfortunately) lost by the student over time, it still exists there as a foundation for all that the student has learned.

      (That, and, quite frankly I found Calculus to be fun. :)
    11. Re:So he's the one by Mecanico · · Score: 1

      I think it is forced because CS is not only for computer using... but for general problem solving. Integro-Diferential Calculus is the basis for solving a lot of problems, so it is just a matter of basic knowledge for any engineering or scientific career.

      If you didn't knew Integral calculus, then you could still program (a lot of people are like this) but your aproach is to actually solve problems as an engineer... and those are represented by integral calculus...

      This is what I think though, and to me it is a good reason to put Calculus "down everyone throats" :)

      --
      UgaBuga!
    12. Re:So he's the one by Anonymous Coward · · Score: 0

      You obviously know very little about computer science. How pray tell, does integral calculus have anything at all to do with the design of a programming language?

    13. Re:So he's the one by Anonymous Coward · · Score: 0

      Moron. Have you never heard of deBruijn notation and higher-order rewriting?

    14. Re:So he's the one by Anonymous Coward · · Score: 0

      Have you never heard of deBruijn notation and higher-order rewriting?

      Is higher-order rewriting strictly speaking a form of term rewriting?

      Anyway, that still leaves the coinductive stuff. Remember that processes in the Pi-calculus are not syntax, but rather syntax quotiented by the canonical congruence, as Milner states in the interview. I'd be surprised if you could express that using the term-rewriting framework.

    15. Re:So he's the one by azaris · · Score: 1

      I am still trying to figure out why Integral Calculus is forced down everyone's throat. Computer Scientists are better off studying proof theory, axiomatic set theory, lambda-calculi, etc...

      There are subfields within CS that make use of Integral Calculus... but most subfields of CS do not use it and instead use things like proof theory, set theory, etc.

      Not all problems potentially encountered by CS majors are discrete - maybe in the textbooks but real life differs from textbooks. You need a toolset for tackling both discrete and continous problems. Analysis (calculus is merely a small part of the whole shebang) is the tool for solving those continous problems and to not teach it would be as stupid as the practice of not teaching engineering students discrete mathematics because classical mechanics doesn't need it.

    16. Re:So he's the one by CharlesEGrant · · Score: 2, Interesting
      I am still trying to figure out why Integral Calculus is forced down everyone's throat. Computer Scientists are better off studying proof theory, axiomatic set theory, lambda-calculi, etc...

      There are subfields within CS that make use of Integral Calculus... but most subfields of CS do not use it and instead use things like proof theory, set theory, etc
      Most undergraduates do not have an accurate idea which field, let alone which subfield, they are going to end up in. The integral/differential calculus is a gateway topic. If you don't have it you've foreclosed study in many areas: physical sciences, numerical methods, probability and statistics, much of engineering, economics etc. I agree that the lambda calculus belongs in every CSci undergrad education, but lacking proof theory or axiomatic set theory closes very few doors, interesting topics though they may be.

      In practice, the average CSci B.S. is going to end up writing database front ends for a business somewhere, so you could argue that all of these topics are academic and irrelevant. I just think that the first two years of college are too soon to drop out from so many areas of human knowledge.
    17. Re:So he's the one by gardyloo · · Score: 1

      Perhaps very little with the _design_ of a programming language (I don't know about this in particular, I'll admit), but the _concepts_ involved in the calculus are used _ALL_ the time in numerics, especially differentiation, limit-taking, and Riemann and Lebesgue integrals. Vector calculus (and matrix manipulation, which one can either view as a parent or child of vector calculus) is irreplaceable as a tool used in CS, especially, e.g., for graphics manipulations.

      And,if one argues that the computer programmers of the future really need to understand algorithmics, what better way to introduce them to the power of computers than have them write a numeric integration program, where the abilities of various programming paradigms shine.

    18. Re:So he's the one by Anonymous Coward · · Score: 0

      Given that you keep calling inference rules "quotients" you can't possibly be that familar with these things. Yes, higher-order rewriting is a type of term rewriting. And yes, you can express congruences via rewriting. Just about anything can be cast into rewriting. Reduction, equivalence, etc.

    19. Re:So he's the one by sketerpot · · Score: 1

      Well, Paul Graham would probably indent his Lisp code, or he doesn't deserve to be called a Lisp advocate. :-)

    20. Re:So he's the one by Anonymous Coward · · Score: 0

      You continue to display your ignorance. Just because graphics, which is not the whole of computer science can apply integral-calculus you assume it is fundamental to all of computer science?

    21. Re:So he's the one by CharlesEGrant · · Score: 2, Insightful
      You obviously know very little about computer science. How pray tell, does integral calculus have anything at all to do with the design of a programming language?
      It is getting to be one of my pet peeves that folks take their little corner of computer science and presume it to be the whole thing. I think you are probably right: integral calculus is probably not a useful tool in the design of computer languages. However, this ignores the dozens of other subfields of computer science where the integral calculus is essential. Anything involving stochastic modeling is going to pull in probability theory, and you won't get far in probablility theory without the basics of integral/differential calculus. On top of this most programmers and computer scientists are using computers to solve some problem external to computer science. To understand many of those problems you will need the basics of integral/differential calculus.
    22. Re:So he's the one by AxelTorvalds · · Score: 4, Insightful
      I am still trying to figure out why Integral Calculus is forced down everyone's throat. Computer Scientists are better off studying proof theory, axiomatic set theory, lambda-calculi, etc...

      I'm a CS and Math guy... to preface this opinion

      Now it depends on the program and the school of thought. Anyone who's ever worked with a physicist in the tech business (they crop up from time to time) understands that the guys with the PhD in Phyiscs is almost always better than the guys with Masters in CS, it just works out that way. Physics and Calc are one in the same when you get through all the BS.

      Everyone knows that physicists are better and so there is a desire to teach the tools that they use. That's just a theory I have, nothing to back it up other than everyone knows how Einstein was and everybody has an idea who Hawking is and nobody knows who Turing was or Euler was or Galois. If it wasn't for Russle Crowe a fair number of math geeks wouldn't know who Nash is... Copy what works.

      Secondly, better programs tie it all together. You can start off simulataneously learning continuous calc and Zermelo set theory in a discrete class. Keep learning calc and more discrete. Then throw some linear algebra in and some abstract algebra and then right about that time one of them (the way I had it, it was a calc class) goes into the throes of a mathgasm and proves Euler's formula, using discrete math and calc both and kind of ties the whole thing together (because after you've learned all the different methods of integrations you're spending a lot of time doing what a class mate of mine called "that big E shit" with additive and multiplicitive series...) If all goes well you'll be wondering what's the true "key to math" at about this time and it's kind of like having God whisper in to your ear when you see how it all links up. I think proving a lot of the linear algebra stuff is substantially easier if you have calc as a tool. Then you continue on and prove all of the calc stuff using the set theory that you had been building up, take a few more calc courses doing diffeqs, partials and calc in 3d which is all mostly mechanical at that point and then after all of that you do whatever the hell you want in math. I think most of the stuff in typical stats classes is very difficult to prove without calc.

      The link between linear algebra, abstract algebra and discrete math is pretty easy to see as you're doing it. The bridge between discrete and continuous math is a bit more complex but it's really undeniable when you see it.

    23. Re:So he's the one by Jagasian · · Score: 1

      Who the hell is the anonymous coward that is replying to my grandparent post? This person actually knows what they are talking about. Log-in so we can see who you are.

    24. Re:So he's the one by Anonymous Coward · · Score: 0

      (suprises-p 'you (would-p #'refer 'lisp-advocate (does 'lisp-advocate) 'beautiful-software))

      If you're going to knock a language, please build the appropriate representation.

      (when (suprises-p 'you (would-p #'refer 'listp-advocate (does 'lisp-advocate) 'beautiful-software))
      (funcall (symbol-function 'me) 'smack 'you)) ;)

    25. Re:So he's the one by Jagasian · · Score: 1

      Like I said, CS typically deals with what is called "discrete math", which is a buzz-word used to describe many branches of mathematics that deal with... well basically countable sets.

      So, while I agree, Integral Calculus has many uses and is interesting (as most subfields of math are) in its own right - undergrad CS students' time would be better spent on other subfields of math than Integral Calculus because these other subfields are more foundational for computer science than Integral Calculus.

      There are plenty of applications of Integral Calculus to computer science, but it is definitely not as core as metamathematics (especially structural proof theory, automata theory, lambda-calculi). If you don't believe me, then study the beginings of modern computer science.

    26. Re:So he's the one by Jagasian · · Score: 1

      CS was born out of metamathematics, and therefore that branch of math is more core to CS than the Integral Calculus. Sure there are many applications of Integral Calculus to CS and many applications of CS to outside things that involve Integral Calculus, but in no way could it be considered a core concept of computer science that should be taught to incoming Freshmen.

      If someone wants to study one of the subfields that you mentioned, then they could take Integral Calculus as an elective. Meanwhile, metamathematics could be taught as the first year math course for CS students.

      Don't violate your own pet peeve. Stochastic modeling is very much a "specific little corner" of CS... that is, if you consider programming languages to be a "specific little corner".

    27. Re:So he's the one by Anonymous Coward · · Score: 0

      Will you guys cut it out with you Mathematical religious wars.

      There is plenty of math to go around.

    28. Re:So he's the one by Jagasian · · Score: 1

      So you are telling me that you don't learn how to solve problems in metamathematics? Come on, any non-trivial collection of math involves solving sophisticated problems.

    29. Re:So he's the one by Jagasian · · Score: 1

      The problem is that you have a finite amount of resources (semesters) and you have to teach undergrads "computer science". Teaching Integral Calculus at the detriment of teaching automata theory or formal logic is a real problem.

      Sure, given infinite resources I would agree that we should teach Integral Calculus along with every other concept in mathematics, engineering, economics, art, politics, etc...

    30. Re:So he's the one by jschrod · · Score: 1

      If you think that "discrete math" is a buzz-word, you should read D.E. Knuth: Selected Papers on Discrete Mathematics. Sorry to disappoint you, but CS people like me trust somebody like DEK more to decide what a buzzword is than pretenders like you. If it would be a buzzword, he wouldn't have chosen it as a determining category in one of his book's title.

      --

      Joachim

      People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

    31. Re:So he's the one by voodoo1man · · Score: 1
      In practice, the average CSci B.S. is going to end up writing database front ends for a business somewhere, so you could argue that all of these topics are academic and irrelevant.
      Which is why I like Graham's (article posted elsewhere in this thread - but it's been proposed by others) idea of breaking up CS. Put all the chairwarmers who complain about "academic irrelevance" into the non-science, non-mathematics faculty. I even have an idea where - Communications needs a little more money and a little more formality.
      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

    32. Re:So he's the one by Anonymous Coward · · Score: 0
      The quick lazy-ness was very good to solve mathematical formulaes of fixed-point-reals using infinite arrays of bits

      By example, i_want_1000_decimals(eval(power(euler,pi))) returns exactly 1000 decimals with 100% of accuracy when it was truncated :)

      It's like to compute all by demand

      open4free

    33. Re:So he's the one by Anonymous Coward · · Score: 0

      Dumbass, he was supporting the idea of discrete mathematics. He just chose a bad description for it. Don't get all mighty and holy-than-thou on us, bitch.

    34. Re:So he's the one by Anonymous Coward · · Score: 0

      Given that you keep calling inference rules "quotients"

      I am NOT calling the inference rules quotients. The process of setting up the pi calculus proceeds in several steps:

      (1) Definition of raw syntax.

      (2) Definition of the structural congruence.

      (3) Definition of the reduction rules.

      (4) Definition of insenitive terms (or alternativly strong and weak barbs).

      (5) Definition of "the" canonical congruence, the largest consistent binary congruence on raw syntax that is reduction-closed and identifies all insensitive terms (alternativly preserves weak barbs). Note the coinductive definition.

      (6) Now processes are the congruence classes induced by this congurence.

      I doubt that this whole process can be case exclusivly as term rewriting, as defined for example on page 61 of [*].

      Yes, higher-order rewriting is a type of term rewriting.

      The section 11.4 on Higher-Oder Rewrite Systems in [*] seems to suggest otherwise: "Term rewriting systems deal well with first-order objects like numbers and lists, but fail to accomodate higher-order functions".

      [*] Term Rewriting and All That, by Franz Baader and Tobias Nipkow, Cambridge Univ. Press, 1998

    35. Re:So he's the one by orcaaa · · Score: 1
      Now it depends on the program and the school of thought. Anyone who's ever worked with a physicist in the tech business (they crop up from time to time) understands that the guys with the PhD in Phyiscs is almost always better than the guys with Masters in CS, it just works out that way. Physics and Calc are one in the same when you get through all the BS.

      That's like comparing a water-mellon to a grape. A person who has a PhD is bound to have much more research experience that guy with a Masters. A better comparison would be between guy with PhD in theoretical CS and a PhD in Physics.

      Everyone knows that physicists are better and so there is a desire to teach the tools that they use. That's just a theory I have, nothing to back it up other than everyone knows how Einstein was and everybody has an idea who Hawking is and nobody knows who Turing was or Euler was or Galois

      You're really clueless, aren't you? Popularity is absolutely no measure of how smart a person is, or how profound their work is. So just because Einstein is well known, doesn't make him the 'bestest' mathematician (physics and theoretical computer science are a subset of mathematics. So I'll call call the people who practice them just mathematicians). If you were to take a survey of people who understood the work of both Galois and Einstein, I think the results would surprise you. The insight that Galois had, and the profundity and extreme elegance of his work is one of the greatest achievements of contemporary mathematics. But this is getting tangential.

      The link between linear algebra, abstract algebra and discrete math is pretty easy to see as you're doing it. The bridge between discrete and continuous math is a bit more complex but it's really undeniable when you see it.

      Yes, the link of algebra to other subsets of algebra is obviously easy to see. The fun comes in when you try to use algebra the way it was meant to be used - i.e: as tool to study number theory (among other things). Study this link (that is: study arithmetic geometry and algebraic number theory) and tell me if this link is more or less complex than the "bridge between discrete and continuous math".

      --
      -- Reality is just an extended dream.
    36. Re:So he's the one by Jagasian · · Score: 1

      There is no "discrete math". When people say "discrete math", they are refering to a collection of various mathematical systems from graph theory to formal logic. Hence I refer to it as a buzzword because it is a phrase coined after the fact. My point is, what is "discrete math" and what isn't?

      I have no problems with the various mathematical systems that people often lump together and call discrete math (I love math). I just think the term is a buzzword. So chill out.

    37. Re:So he's the one by Anonymous Coward · · Score: 0
      Blame me about concentrating on a specific little corner if you want, but if you want to apply any kind of formal reasoning to reality, you simply need to understand and use stochastic modeling. It's simply the best way we know of accounting for the inevitable variations between models and reality.

      On the other hand, I concur that CS students would do well to concentrate more on discrete mathematics, as long as they get the rudiments of calculus and stochastics as well. Then again, in practice few students are going to actually understand the issues well enough to apply them in their work, and would rather forget whatever they learned and rely on their intuition... but that's beyond the scope of this discussion :)

    38. Re:So he's the one by jschrod · · Score: 1
      You ask "what is discrete math and what isn't". I don't think that a Slashdot thread is the place to copy a definition, I wouldn't have it on-line anyhow.

      I gave you a reference where you can find a definition of this math sub-field. The reference was meant earnestly, and was not cited for name-dropping. As with all books by DEK, it's very well written, too, and is a joy to read.

      --

      Joachim

      People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

    39. Re:So he's the one by kinnell · · Score: 1
      I am still trying to figure out why Integral Calculus is forced down everyone's throat

      That's because you probably assume that the only point in learning pythagoras' theorem is to save the effort of measuring the third side of a triangle. The reason that mathematics has been taught in schools for most of the last 2.5 millenia, has had nothing to do with calculating stuff. Learning mathematics trains the mind to reason about things.

      To get to the point, calculus trains the mind to reason about dynamic systems, in a similar way that geometry trains the mind to reason about static systems. Learning geometry and calculus are probably just as important for computer science than set theory, even though the latter is more useful as a tool.

      --
      If I seem short sighted, it is because I stand on the shoulders of midgets
    40. Re:So he's the one by Jagasian · · Score: 1
      Exactly. As I said, "discrete math" is typically a collection of subfields that deal with countable sets, which is one definition. However, "discrete math" also deals with uncountable sets (set of functions from naturals to naturals). Hence Wolfram's definition is too restrictive.

      What is and is not discrete math depends on the discrete math textbook you read. So its just a buzzword used to describe a collection of things.

      A non-buzz name would be to just list the things you think are in discrete math or that your discrete math textbook covers: counting, graph theory, set theory, logic, automata theory, category theory, etc...


      http://www.m-w.com/
      Main Entry: buzzword
      Pronunciation: 'b&z-"w&rd
      Function: noun
      Date: 1946
      1 : an important-sounding usually technical word or phrase often of little meaning used chiefly to impress laymen
      2 : a voguish word or phrase -- called also buzz phrase


      So it is trendy to call some collection of math "discrete", which implies countability, but as already stated not everything in discrete math is countable, so the word is misleading and only really used because it is vogue. So the second definition of "buzzword" applies.

      It can also be argued that a proper name for such collections of math would be too technical for laymen, and hence the first definition of "buzzword" applies. The phrase "discrete math" has little meaning because it is ambiguous.
    41. Re:So he's the one by jschrod · · Score: 1
      By your definition, all areas in math are buzzwords, since they are "too technical for laymen". Including terms like "graph theory, set theory, automata theory, category theory, etc.", as used by you. If you ask a laymen what these terms mean, explanations will be very far off their real sense. E.g., try this with graph theory. Do you spout off buzzwords in your posts, "to impress the laymen"? I hope not, but I cannot judge it, since I have both a Math M.Sc. and a CS Ph.D. and thus won't qualify as laymen.

      I wanted to help you with a reference to scientific work where you find better information than at a software company. You don't want the help. We should let it rest.

      --

      Joachim

      People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

    42. Re:So he's the one by Listen+Up · · Score: 1

      Very Nice. I agree with you 100%.

    43. Re:So he's the one by Anonymous Coward · · Score: 0

      These days more people know the name Wiles than
      the name Witten. If more people know the name Einstien than Galois, it is probably because it more people are familiar with concepts like speed, light, and relative frames of reference than they are with things like algebraic extension fields and normal subgroups. Your theory sucks.

    44. Re:So he's the one by Com2Kid · · Score: 1
      • If someone wants to study one of the subfields that you mentioned, then they could take Integral Calculus as an elective. Meanwhile, metamathematics could be taught as the first year math course for CS students.


      How many Bachler CS students are going to go on to design programming languages?

      Compare that to the number who may end up working in:

      Physics-
      Game Design
      Embedded software for cars
      Raytracer / Radiosity programming
      Robotics work

      Pure Math-
      Graphing calculators
      Symbolic mathematical software

      Matrixes-
      Almost everything under the physics heading!

      Now excuse me, I have to go get to work, I have to apply calculus to some real world problems. ^_^
  2. XLANG? by Anonymous Coward · · Score: 0

    Is actually a language that is usable at this point, or just a spec?

  3. Ok, here we go by October_30th · · Score: 2, Funny
    "He may not be as well-known as he deserves to be, but his research contributions are ubiquitous"

    Now that just makes feel so much more confident about his work...

    --
    The owls are not what they seem
    1. Re:Ok, here we go by Anonymous Coward · · Score: 0

      ML is one of the greatest family of languages ever. Learn to code in ML (or functionally in LISP, Scheme) - and it'll change the way you code - and the way you think about going through your daily life (Change it for the better, even!)

  4. How do we know? by guacamolefoo · · Score: 5, Funny

    How do we know that the interview is with the Turing Award winner? Maybe the interview was just with a computer?

    GF.

    Obligatory disclaimer for the Comic Book Guys out there:
    I know, I know -- the Turing Prize isn't the Loebner Prize. It's the day before a holiday -- give it a rest and laugh a little.

    1. Re:How do we know? by Anonymous Coward · · Score: 0

      Ha, ha! Made you use your mod points!

  5. Still a male-dominated industry... by Space+cowboy · · Score: 2, Funny

    Coq and Isabelle are used heavily "for verification purposes" today. ... poor old Isabelle... Give a girl a break!

    Simon.

    --
    Physicists get Hadrons!
    1. Re:Still a male-dominated industry... by Anonymous Coward · · Score: 0
      Hmm.. i thought you'd put the "Coq" in the "HOL".

      (For the humor impaired, Coq and HOL are two of the programs he's responsible for.)

  6. Nurse Nipple? by Anonymous Coward · · Score: 0

    Wasn't that the lame 1970s show with Nurse Nipples or whatever her name was on it?

  7. Re:So he's the one tsarkon reportst by Anonymous Coward · · Score: 0, Funny

    so even with the help of a computer your dumb ass is whining about learning math that newton and Leibniz discovered in the late 1600's.

    get with the times. (there is evidence that archimedes understood infinity much more than realized before with new evidence, and he lived in 225 BC. )

    care to whine about calculus anymore?

  8. Incisive Stuff by CrosbieSmith · · Score: 1
    I went to the Suez Canal. At the time, the British were still in charge.

    Must have been warm there.

  9. Formal proofs? by heironymouscoward · · Score: 1, Troll

    One of the first things I learned as a computer scientist was the impossibility of proving a piece of software "correct".

    Still, I always found it an interesting concept.

    Then, one day, watched a Eureka (EU) team build a formal verification suite based on Z. One of my friends was on the team. One of the best programmers I ever knew, he decided the whole venture was a fraud, said so, and was fired.

    My opinion? Formal proofs are a holy grail, unreachable, and the reality of software is that small, testable, interworking pieces is the only way to assure "correctness". That, and code generation, the wizard's wand of software.

    --
    Ceci n'est pas une signature
    1. Re:Formal proofs? by heironymouscoward · · Score: 4, Funny

      You're an ignorant bastard and you should RTFA instead of spouting your half-cooked opinions.

      (Help, moderators, mod me "-1 Insane in the membrain", I'm flaming myself!)

      --
      Ceci n'est pas une signature
    2. Re:Formal proofs? by Anonymous Coward · · Score: 1, Insightful

      Er, what?

      One thing you should have learned as a computer scientist is the proving a peice of software correct is *possible*.

      The caveat is that you can only prove it correct with respect to a formal specification (as we all know if your spec is wrong your still shafted) and formal proofs are hard to construst for non-trivial programs. Hence the need for machine assisted proof tools.

    3. Re:Formal proofs? by Anonymous Coward · · Score: 4, Funny

      This is the strangest instance of Karma-Whoring I have ever seen. Congrats, I think...

    4. Re:Formal proofs? by Anonymous Coward · · Score: 0

      But I don't know if I agree with the impossibility to prove a software "correct". Why would it be impossible? If you know the hardware and the OS, and if you plan the software perfectly, then why would you not end up with a perfect software?

    5. Re:Formal proofs? by Anonymous Coward · · Score: 0

      He's referring (I think) to the "Halting Problem", which is indeed a proven fact: it is impossible, in the general case, to prove that any program will always terminate. It is known to be impossible in the general case because it is possible to construct artificial cases in which it is impossible. In most specific cases it is possible, as you say.

    6. Re:Formal proofs? by WNight · · Score: 1

      This is why you specifically construct small elements that are provable, and string them together. You don't have to prove anything about a randomly created program.

      You don't sit down and attempt to formally prove that Doom3 is "correct", you work on small pieces of it and then the logic that calls those pieces, etc.

      If you assume a routine can only take certain inputs and produce certain outputs, use asserts (in production code, not just for testing) and if nothing else, at least catch your errors early before they cascade.

    7. Re:Formal proofs? by Znord · · Score: 1

      That whole thing has set back computer science quite a bit. It's very silly to use only one example and say *all* programs cannot be proven/analyzed.

      Godel's proof is merely a way to show that no one *complete* program can decode the operation of all other programs... and his reasoning was, in summary.. pretty simple.

      The first program might be hidden inside the second one and thus it can be programmed to act essentially with all the smarts of the first... and can trap it in a loop. The checker can become manipulated by a cloned version of itself basically. (Its more complex than this, but the real thign is mostly the same).

      It's sad how many CS students walk out with a permenant aversion to program analysis tools.

      --
      Nietzsche is dead - God
    8. Re:Formal proofs? by Anonymous Coward · · Score: 0


      My opinion? Formal proofs are a holy grail, unreachable, and the reality of software is that small, testable, interworking pieces is the only way to assure "correctness". That, and code generation, the wizard's wand of software.


      For an alternative view, I recommend this this article.

    9. Re:Formal proofs? by JamesOfTheDesert · · Score: 1
      One of the first things I learned as a computer scientist was the impossibility of proving a piece of software "correct".

      *Please* tell us where you learned this. Please. This is just too damned funny.

      Granted, there are programs that defy formal proofs, but it's nonsense to say that *no* program can be proved correct.

      --

      Java is the blue pill
      Choose the red pill
    10. Re:Formal proofs? by alba7 · · Score: 1
      Granted, there are programs that defy formal proofs, but it's nonsense to say that *no* program can be proved correct.

      That's not what he said. "a piece of software" does not mean "all software", but rather gives a good impression of the fuzzy area called legacy code.

      Today it's not even imaginable to have a tool that can load a typical piece of software written in one of the major languages (be it C, C++, Delphi, Java, C#, Ada or Lisp), and have it verified.

      Current wisdom is to use a very special subset of imperative programming and augment it with additional proof-related hints. All together this makes a very complicated tool, requiring highly qualified engineers, and a very different mindset. This kind of development is slow and expensive.

      --
      Post tenebras lux. Post fenestras tux.
    11. Re:Formal proofs? by Anonymous Coward · · Score: 0

      Actually, Applicative Lisp is used for doing a lot of reasoning. It is sufficiently expressive to model hardware systems. The JVM has been modelled this way and the model can be used to prove properties about basic Java programs. See the ACL2 Homepage for details.

      The real barrier to proving anything about programs written in conventional languages is side effects. Imperative programming is just a bad way to go. Even these "basic" properties of Java programs are proven in terms of the underlying Lisp code that implements the interpreter.

    12. Re:Formal proofs? by Anonymous Coward · · Score: 0

      The point was that for any non-trivial program you may be able to prove that the program meets the spec, but you've then got to prove that the spec is correct. Which becomes recursive with no termination condition.

    13. Re:Formal proofs? by heironymouscoward · · Score: 1

      Hehe, your link is unavailable:

      "The page cannot be displayed"

      Something crashed. Presumably it was not the hardware. The software, perhaps?

      --
      Ceci n'est pas une signature
    14. Re:Formal proofs? by 1iar_parad0x · · Score: 1

      You can prove that given certain inputs you achieve certain outputs. However, so much can go wrong with the average application (i.e. database connectivity, resource issues, memory leaks), you'll never have error free code. Most of the errors I see exist because of complexity and scope creep (management issues). So, program verification still won't catch all of the "errors" in our code. Not to mention that proving a verification is impossible. You're dealing with self-referential stuff here. Proving you're method of proof. Proving you're method of proving you're proof. Etc...

      I still have issues with the terminology as well. You're not proving your code. You're VERIFYING it. The fact it compiles should be a proof (i.e. it's a valid production of the language). You're just seeing if there's a 1-1 mapping between the verification and the actual code. It's more like an isomorphism.

      No, I'm obviously not an expert in program verification.

      I'm not trying to knock program verification. Heck, it may be our only chance at a real silver bullet of software development. Now if I could only fit the term XML in this post....

      --
      What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
  10. Great words from a great thinker by Jonathan · · Score: 1

    "It doesn't rain because it is so dry" as Milner said in the interview in regard to the Suez Canal region.

    But such banalities aside, it is an interesting interview. I was particularly interested in learning that he doesn't have a doctorate -- on this side on the pond that would have been required (for better or worse) for his academic position.

    1. Re:Great words from a great thinker by Anonymous+Brave+Guy · · Score: 1
      I was particularly interested in learning that he doesn't have a doctorate -- on this side on the pond that would have been required (for better or worse) for his academic position.

      Indeed, he had a distinguished early career for someone without a PhD. Still, he was both a Fellow of the Royal Society and a Turing Award recipient several years before he became Prof. Milner and then became the head of the Computer Laboratory at Cambridge. (Note to US-based readers: in the UK, the title "professor" is very senior, typically given only to the most distinguished figures in a university department.)

      I think CS is one of those fields where sometimes a PhD has limited value, though. If you're intending to work in industry, three or four years of solid experience to start a career is worth way more than three or four years doing theoretical research in a narrow area. Even if you're intending to do research later, the academic community is so tied in with industry in much of the CS field that it's quite possible to move from one to the other, either way around, several times during a career. At that point, other achievements (including research carried out in the industry) could easily count for as much as a PhD anyway.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:Great words from a great thinker by Zeinfeld · · Score: 1
      Indeed, he had a distinguished early career for someone without a PhD. Still, he was both a Fellow of the Royal Society and a Turing Award recipient several years before he became Prof. Milner and then became the head of the Computer Laboratory at Cambridge. (Note to US-based readers: in the UK, the title "professor" is very senior, typically given only to the most distinguished figures in a university department.)

      FRS and Profs are much rarer than Turing award winners. Not all award winners are in the academic sphere. He could easily have taken a chair at pretty much any department he chose. I suspect he did not want the title or it came with head of dept attached.

      Not having a PhD. was not very unusual in British academia, it is pretty difficult to do today but not impossible. The main problem is the funding bodies. One of my collegues at Oxford did a doctorate in a little under 18 months after unexpectedly getting an EU grant and finding out that the fine print required him to have one.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
  11. Turing Award winner? Is this a mistake?! by tonyz2k · · Score: 0, Offtopic

    I can't believe this news is real. Its perfect timing though because I just finished up a report, I am studying this. This amazes me because I could not find any person on earth who has passed the Turing Award, by designing an OS that could trick people into thinking it was a person, and not computer hardware. In actuality (if we believe this news) it happened over 12 years ago and nobody has done it since. Sounds like this guy knows his stuff. Anybody else pass the Turing Award since? Anyone?

    --
    click here to incinerate homeless people
  12. remember MegaHAL by DarklordSatin · · Score: 2, Interesting

    Mention of the Turing Award brings back memories of all the fun times we had with MegaHAL (http://megahal.sourceforge.net/). We set up a machine in my local dorm kitchen and our MegaHAL rapidly became a horrible swearing bigot; it provided endless amusement for all.

    1. Re:remember MegaHAL by DarklordSatin · · Score: 1

      Of course, I'm an idiot because that's the Turing Test not the Turing Award. Stupid! Stupid! Stupid!

  13. Re:Turing Award winner? Is this a mistake?! by Jonathan · · Score: 3, Informative

    The Turing Award has nothing to do with the Turing Test. It's just an award given by a major computer science association (the ACM) to people that they consider to have significantly advanced the field.

    http://www.acm.org/awards/taward.html

  14. Roblimo? by 3Suns · · Score: 1

    This can't be /.'s own Robin Miller (roblimo), can it? Of course not, it's Robin MilNer!

    --

    -3Suns

    ~~~~
    The Revolution will be Slashdotted
  15. Proof of Code by starseeker · · Score: 3, Interesting

    I have been wondering for some time now if proving code might be the next step in computers. If you think about it, most problems related to everyday use of computers have been solved, in one form or another - spreadsheets, word processors, databases, and communications seem to account for most of what we want to do, and their feature sets are largely well defined. The task now is not to figure out what we want to do - we know that very well. What we want to do now is do it WELL.

    I know little about the field of proving code, so whether this is possible I don't know, but it would be interesting to try something like the following:

    a) create a large, detailed specification of what a database (for example) should be able to do. Start general and work down to specifics. Map the full feature set out, eventually down to the function level.

    b) translate those requirements into some proof language - Z or B are one's I've heard of, perhaps there are others more appropriate. Identify what the limits are - ultimately the behavior of the program should be well defined, ideally. Break it down to a point where the individual units under consideration can be reasonably expected to be provided by the operating system or system libraries (which, in an ideal world, would also have been created or could be created by a similar process).

    c) Having the proven structure, use code generation techniques to automatically produce code that will create the program.

    In essense, basically all the work would be done at the specification level, and once we can specify in full detail what we want, the computer itself handles the job of writing the actual code.

    As I said, I don't know how much of this is possible, but if we were to start from scratch at the assembly level perhaps something like this could occur:

    0) Before anything else, based on language specs, create a proven compiler for the language(s) to be used. Without that, all practical work is useless.

    1) Define kernel or microkernel design, and map that design down to hardware levels (RISC might be an easier platform for this). EROS might be a good design starting point. Once it is clear what jobs the hardware would need to do for each command, map out and prove the assembly commands in the RISC platform that would do each job. Build off of those proven components to prove the behavior of each higher level language command, and once the higher levele language behavior is defined and matched to what is needed, write and prove the kernel.

    2) Having a kernel whose behavior is now well defined and trusted, the real work begins. Working off of the well defined and proven components in the kernel, build up the rest of the tools needed to provide an operating environment expected on a modern machine. Compartmentalization is key, both for system security concerns and for proof concerns. Essentially the unix idea of one tool doing its specific job correctly, taken to its logical extreme.

    3) Having a basic system developed, begin to work on the end user components. Graphics libraries and toolkits would need to be implimented and proven. Porting current toolkits would be possible, but the would likely not be suitable for the rigorous hard core proof testing and a major system graphics setup would have to be designed, specified, and created. Fresco might be a good source of ideas here. Once the proven structure is available,

    4) Identify and specify key end user applications. Define an Office application, with various components like word processor and spreadsheet, and define clearly their features. Treat the last 20 years of software usage as field research on what features are required. Impliment them using the proven system tools. As they mature, replace ports of non-proof based tools with new software. Instead of having many tools for one job, define the job itself clearly, and its solution clearly. If more features are needed or desired, the place to add them is in the proof structu

    --
    "I object to doing things that computers can do." -- Olin Shivers, lispers.org
    1. Re:Proof of Code by Josh · · Score: 1

      The basic problem seems to be that the correctness proof starts from the premises of a logical description of what the program is supposed to do and how the abstract machine it runs on will operate, and it is at least as easy to make mistakes in these logical descriptions as it is to make mistakes in the program to be analyzed.

    2. Re:Proof of Code by nicophonica · · Score: 4, Insightful

      Almost no branch of computer science has seen more countless hours of research devoted to it with more meager results then program verification theory. (And that is not primarily what Milner's work addresses.) The fundament problem with program verification, and why you will not see any of the applications the you mentioned for at least the foreseeable future and probably ever, is that even after you've developed a language that is amenable to correctness analysis and after you have developed a specification requirements language to articulate the 'implication' of your programs written in the verifiable language, and after you have built a tool that allows you automate the construction of correctness proofs, you find that all you've done is push the real problem solving work of programming (where most of the errors come from) into a fuzzy realm of prerequirements that is even less conducive to the types of problem solving that programmers do then the original programming language. These techniques can be useful for very narrow, specialized types of applications which must be correct. But can never work for something even as specialized as an operating system, let alone a general-purpose business application.

    3. Re:Proof of Code by gorilla · · Score: 1
      I have been wondering for some time now if proving code might be the next step in computers. If you think about it, most problems related to everyday use of computers have been solved,

      This has been pretty much true for at least 30 or 40 years, when computers became widely accepted as business tools. However what's stopping more formal proven software is that it's incredibly expensive to do so. Those fields which can justify the expense, eg flight control systems, are proven. General purpose applications aren't.

    4. Re:Proof of Code by Anonymous Coward · · Score: 2, Insightful

      Ignorance abounds. Just because it is hard to verify some properties, we should ignore verifying those that we can?

    5. Re:Proof of Code by Anonymous Coward · · Score: 2, Interesting

      These techniques can be useful for very narrow, specialized types of applications which must be correct. But can never work for something even as specialized as an operating system, let alone a general-purpose business application.

      This is correct, BUT the applications for which you really NEED verified correctness are so vital (for example airplane software) that we cannot afford not developing the formal methods. That research will spin off to more general purpose software. Just look at the countless millions, if not billions companies like Intel or Microsoft throw at formal methods now (for example in the form or model checking, eg SLAM).
      They do this, because they have taken huge economic hits from faulty software/hardware ...

      The first 2 decades of formal methods were abysmal in their results, but this is changing now. Model checking for example really is a succesfully technology.

    6. Re:Proof of Code by Anonymous Coward · · Score: 0
      I suspect what I've outlined, if its even possible, could be a fifty year project for a score of brilliant software engineers and computer scientists, but once done it would be done for all time.

      The result would be fifty years of stagnation. A healthy computing community needs a influx of fresh new ideas. Already we have too many artifacts of the past dominating the present.

      I am sympathetic to correct software, but I don't think you can combine the goals of correct software with reimplementing all existing software artifacts. While your busy applying mathematical verification, you might as well apply a mathematical aesthetic to the design of the software. Fresh ideas, elegant structure, clever design, ect..

    7. Re:Proof of Code by starseeker · · Score: 2, Insightful

      I expect this is true, but if I may...

      "all you've done is push the real problem solving work of programming (where most of the errors come from) into a fuzzy realm of prerequirements that is even less conducive to the types of problem solving that programmers do then the original programming language."

      By prerequirements do you mean identifying the behaviors and properties needed at each level of programming? I know this won't suddenly enable the creation of "perfect" programs but if errors are occuring in the design of the software rather than the code implimentation, hopefully they would be easier to address by identifying that behavior and tracking it back to the specification. Specifying how a program will behave is something I know we aren't terribly good at, but if we want really secure and reliable software its a hurdle that must be overcome.

      "These techniques can be useful for very narrow, specialized types of applications which must be correct. But can never work for something even as specialized as an operating system, let alone a general-purpose business application."

      I guess it depends on what you mean by general purpose - I guess I don't really think of something like a database or spreadsheet as general purpose. They accept specific types of input, and perform specific operations on input, and return well defined output. If you define these types and the behavior for the types, and clean failure for other input types, shouldn't that be enough to specify the behavior of the program? Obviously there are a lot of specific points, such as allowable cell input, sheet formatting, operation specific input, etc. but I guess I don't see why it couldn't be attacked. Undoubted this is simply my ignorance. Are there any good introductory references to this kind of thing?

      --
      "I object to doing things that computers can do." -- Olin Shivers, lispers.org
    8. Re:Proof of Code by Anonymous Coward · · Score: 0
      I have been a lot more optimistic about the take-up of formal methods in the industry ever since noticing that the Java people are basically doing logic programming when they talk about "business rule engines". Once logic programming, too, was considered an unpracticable technology.

      It's not inconceivable that as formal proof methods slowly advance, and are used by more and more industries, that the cost-benefit tradeoff turns on its head. There are already companies that make a living selling proof tools, one day they might grow into a multi-billion-dollar industry...

      As an aside, it is a strange day for slashdot that the registered users are the naysayers and the anonymous cowards keep the positive attitude.

    9. Re:Proof of Code by kimbly · · Score: 1

      Verification of arbitrary programs is a very different proposition from constructing programs given a specification. The first is based on taking a given program and proving it has certain properties. The second is based on creating a program that has certain properties because you constructed it that way.

      There are lots of ways to create an under-specified specification that admits multiple possible program implementations, and then allow the compiler to simply "choose one" arbitrarily. For examples, look into the field of constraint programming. What the grandparent post is really asking for is "don't-care nondeterminism" applied at the level of static code, rather than the level of dynamic exploration, as with constraint programming.

      The difficulty with this is not so much that it is impossible, as that we currently don't have many mathematical tools for predicting the runtime behavior of static code. The problem is similar to looking at a picture of the Mandelbrot set and trying to figure out what equation to use to produce it. I expect that there will always be a limit to what kinds of dynamic behavior we will be able to deduce static rules for, but over time the set of dynamic behaviors that we "understand" enough to automatically generate will grow. In particular, most of the dynamic behaviors that people are interested in are relatively simple to describe -- a dropdown list is much simpler than the Mandelbrot set, for example.

      For example, we have already made progress in fields such as parsing, register allocation, garbage collection, etc. The set of techniques that are "baked into" modern programming languages will continue to grow, and what currently requires detailed implementation will eventually be automatically generated. At that point, we'll take it for granted, and people (such as the author of the parent post) will continue to claim that it's impossible to move any further towards the holy grail of automatic programming.

  16. Re:Turing Award winner? Is this a mistake?! by WebMasterP · · Score: 1

    Man, you pass the 'Turing Test'... you don't 'pass' the award.

    I don't think just because you win the Turing award you win the test.

  17. Happy Thanksgiving, Taco by Anonymous Coward · · Score: 0


    I agree wholeheartedly. Take care, see you next week.

    Dad

  18. ObMrObvious by tbone1 · · Score: 1
    Huh. I never made the connection.

    ( Comment source.)

    --

    The Independent: Reverend Spooner Arrested in Friar Tuck Incident - ISIHAC, Historical Headlines
  19. Re:Turing Award winner? Is this a mistake?! by Slurm-V · · Score: 1
    Man, you pass the 'Turing Test'... you don't 'pass' the award.
    Unless you've been stupid enough to swallow it, I guess.
    --
    Of course it's going off the rails. How else is it ever going to fly?
  20. To my knowledge by Anonymous Coward · · Score: 0
    calculus is becoming more and more influential in the design of new programming languages (for example Microsoft's XLANG)

    When microsoft first submitted XLang to OASIS, their primary criticism is XLang was poorly thought out. I don't know the validity of XLang being inspired by pi-calculus, but it definitely comes no where near it. If anything, XLang is simply glorified if/then statements in XML format. You're better off with other markup languages like RuleML that actually tries to learn from pi-calculus, horn logic and first order logic to create a well formed language.

  21. Turing Award by MWoody · · Score: 1

    Q: How do we determine who gets the Turing award?

    A: By finding a geek who can pass the Turing test.

  22. Re:turing by ph43thon · · Score: 1, Offtopic

    Yah, he killed himself because of persecution by the British authorities. Wonder why it's considered bad to point it out.. I'd always hoped that homosexuals would mention people like Turing more often than just the same old run of the mill "creative, artistic writer, singer, actor types" If I was gay, I'd be annoyed by the prevailing homo-stereotypes.. eg 'Queer Eye for the Straight Guy' (variations on flaming queen to touchy feely style maven) or well.. nevermind.. I just find it odd that you never hear it mentioned that Turing or Hardy (well, they could claim him.. since he seemingly wasn't heterosexual) or any number of scientist who weren't openly gay.. (but "might" have been.. oh well, we shall never know)


    p

  23. Re:turing by vbweenie · · Score: 2, Informative

    Or how's about John Maynard Keynes, the economist? Anthony Burgess' _Earthly Powers_ has a very funny running joke about how many of the greatest and most serious thinkers of the twentieth century were gay (or non-straight, in any one of a number of ways).

    An excellent biography of Turing that explicitly deals with the significance of his sexual outlaw status is Andrew Hodges' Alan Turing: The Enigma. Makes one think of the expression "the backroom boys" in an altogether different way.

    I don't think that Turing wanted to be a "sexual outlaw", by the way - obviously he'd have preferred it if the authorities had simply left him alone - but there is a subversive, anti-authoritarian streak in him which has some of its roots in the British gay culture of his times. An often overlooked aspect of the Turing Test is the stipulation that the human participants must also pretend to be something they're not - namely a member of the opposite sex...

    --
    Experience is a hard school, but fools will learn no other.
  24. Ob Ed McMahon by Anonymous Coward · · Score: 0

    Hey-o!

  25. you misunderstood by Anonymous Coward · · Score: 0

    One of the first things I learned as a computer scientist was the impossibility of proving a piece of software "correct".

    You learned wrong. While it is known to be impossible in general to prove (or disprove) arbitrary properties about arbitrary pieces of software, there are still lots of specific things you can prove about specific pieces of software. The same is true for mathematics: we know that not everything can be proven or disproven, but that doesn't mean mathematicians stopped doing proofs.

    In any case, you also misunderstood what Milner was working on.

    1. Re:you misunderstood by steve_l · · Score: 1

      As someone who studied under milner (undergrad; his classes were kind of dull), I do occasionally whip out the formal methods to prove things one. But by and large I write unit tests, because with junit you can automated regression testing; whereas for proofs, any change to the code and you need to reprove everything. Plus you have to make so many assumptions about the underlying system, & unit tests are great for testing those assumptions (like the XML parser works, the network is running, etc).

      So what do I prove: that my threaded code is synchronized correctly. This is stuff that tests dont always catch, even on two-way or four-way systems, and I dont want to wait until ship time before finding I left a race condition or a deadlock.

      Of course, once I am satisfied that the threading works & have to document it and say 'leave this alone'; becaus not enough developers can do proofs, it is a major maintenance risk.

  26. Re:turing by Anonymous Coward · · Score: 0

    spit

  27. actually, no. Robert W. Floyd by Anonymous Coward · · Score: 0

    The late Floyd, of Stanford, had two B.S. but no advanced degrees. He was perhaps the inventor of nondeterminism, program verification (see "On the meaning of programs"), and of the Floyd-Fulkerson algorithm.

  28. Re: optimization!!! by Anonymous Coward · · Score: 0

    Verification, or at least the proof of correctness of optimizations is certainly not a meager result. However, there is an incredible amount of research that goes into this without huge results, just very respectable.

  29. Re: Discrete/Continuous by Anonymous Coward · · Score: 0

    I agree, generally, that what falls under 'discrete math' (see, for example, "Concrete Mathematics" by Knuth et al.), is more important to the CS guy than, say, differential equations.
    However, as a point of interest, I do know that Integral Calculus is not restricted to sets that are isomorphic to the reals, and hence is applicable in the discrete sense, as can be found in discussion of measure and integral theory. This is useful especially in generalizing series and distributions. Series and distributions are clearly very important in CS topics like complexity, counting, probability, etc.

  30. It's worse for Isabelle than you think by Anonymous Coward · · Score: 0

    You think that's bad? I've got a friend who's working on feeding Isabelle to the Vampyre.

  31. Re:poop by Anonymous Coward · · Score: 0

    guess you're ready for your yoda doll now.

  32. the turing test is a waste of time. by rebelcool · · Score: 1

    Few humans could pass the turing test in the way turing outlined it - Have a human start the test, and then switch over the computer at some point later on without telling the questionee.

    --

    -

  33. Not really (& Anecdote) by Red+Pointy+Tail · · Score: 1


    Lamda calculi is different from your usual calculus that involves integration and differentiation - it's more symbolic processing and discrete maths, and can be traced back to even church/turing, so you can't really blame him for it.

    now some anecdote:

    I took an undergraduate communicating automata/pi calculus course in cambridge in 1996 - I also had the good luck to be supervised by prof Milner himself (who was the head of the Computer Laboratory at that time) for that course. Then, you could download his notes as .ps files and you think, ok nice latex formatted notes, goody. They turned out to scans of pages written in a rather fanciful script. During the supervision, he fascinated both myself and my supervision partner by flourishing one of those ancient fountain pens which requires dipping into ink, leaving nice blotches on your coursework - and i thought cor, this is the guy who's at the forefront of our technological future. But we both agreed that Milner the coolest dude in the CL. :)

  34. I worked with Robin Milner... by C+A+S+S+I+E+L · · Score: 2, Interesting
    ...way back in the mid to late 80's, mostly doing compiler programming in the ML project. In fact, my first exposure to ML was in 1979, with an early version running on on DECsystem 20. (I can't remember what it was written in - something like Lisp or Prolog.) For my Ph.D. I implemented a polymorphically typed hybrid functional/logic language based on the ideas of Milner and Ehud Shapiro.

    The big push to ML as a language was, as stated, a redesign and implementation (in Pascal, I think) on VAX/VMS by Luca Cardelli back around 1981 - it was a lovely piece of design, with first-class records and union types, and pattern matching. During the standardisation of the formal semantics (late 1980's), the implementation effort was shared with Dave MacQueen at AT&T and Andrew Appel at Princeton (whose compiler books and papers on continuation passing are a good read).

    Throughout, the implementations and the mathematics advanced hand-in-hand; on many occasions I'd be doing something in the compiler, and referring to the formal equations of the static or dynamic semantics to make sure I was doing the right thing.

    I've been out of touch for about ten years (just when the Pi-Calculus was emerging) but my patterns of thought and reasoning about software structure are still rooted in the experiences of a quarter of a century ago, and I still come across things whose lineage can be traced back to ML's theory and practice (for example, Java exceptions and inner classes).

  35. These two answers stuck out for me by whereiswaldo · · Score: 1

    Did you get a temporary or permanent position in Edinburgh?

    I got a permanent position in 1973. That was coming back from the States, which was a good thing because we wanted our family to be educated in Europe, not in America.

    What do you make of the increasing patenting ideas in computing?

    It's terrifying. It's ridiculous and terrifying at the same time.