• Question: What does your language programme do?

    Asked by alexandraa97 to Phil on 16 Jun 2010 in Categories: .
    • Photo: Philip Wadler

      Philip Wadler answered on 16 Jun 2010:


      Anything you want it to!

      Programming languages divide into two kinds, general purpose and domain specific.

      A general purpose language can do anything any other general purpose language can do: you can use it to write a game, a program to analyze the proteins that occur in HIV, a program to run a garbage truck, an operating system, or anything else. People have written programs to do all these things, and many more, in Haskell, and Java is even more widely used.

      A domain specific language is used for a particular purpose. For instance, I’m currently involved in a group discussing the use of a domain specific language that can be used to describe the way a complex financial security behaves—this can be used to sort out some of the problems that caused the credit crunch, and the Securities and Exchange Commission in the US is interested in using programs for this purpose.

      One of the most important results in computing is that any general purpose programming language can do anything any other general purpose language can do. This result is due to Alonzo Church and Alan Turing, who formulated it in the 1930s. Alan Turing went on to work with some of the earlier computers in the 1940s and 1950s, and played a crucial role in breaking codes in World War II. Recently, Gordon Brown issued an official apology to Turing, who was prosecuted in the 1950s for being gay, and committed suicide.

      I find it fascinating that some of the most important results about computers were discovered just before computers were invented!

Comments