Slashdot Mirror


John W. Backus Dies at 82; Developed FORTRAN

A number of readers let us know of the passing of John W. Backus, who assembled a team to develop FORTRAN at IBM in the 1950s. It was the first widely used high-level language. Backus later worked on a "function-level" programming language, FP, which was described in his Turing Award lecture "Can Programming be Liberated from the von Neumann Style?" and is viewed as Backus's apology for creating FORTRAN. He received the 1977 ACM Turing Award "for profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages."

4 of 271 comments (clear)

  1. Re:We Stand On The Shoulders of Giants by Slashamatic · · Score: 3, Interesting

    To heck with just statistics. Fortran is alive and well at the heart of some major airline reservations, checkin and cargo systems. yes, they tried to move to newer technologies but they couldn't handel the load, particularly at points when there is a lot of rescheduling such as during bad weather.

  2. Remember him not for FORTRAN by Edward+Kmett · · Score: 5, Interesting

    I find it somewhat troubling that in this article John Backus is remembered primarily for the genie that he tried to put back in the bottle.

    FORTRAN was utilitarian and procedural and good at enabling engineers and scientists to get work done. However, the problem with FORTRAN is the imperative pattern of though that it imposed led us to tell the computer a precise sequence of steps to accomplish each task. It doesn't offer information on dependencies, simply a "go here, do that" sequence of instructions. Imperative programs are inherently hard to reason about in terms of global state and effects and as written tend to be subject to off-by-one errors.

    Backus saw this in 1978! See http://http//www.stanford.edu/class/cs242/readings /backus.pdf.

    His insight spawned a great deal of the interest in functional programming languages. It was been credited by Paul Hudak of Haskell fame http://portal.acm.org/citation.cfm?doid=72551.7255 4 (ACM membership required) (summarized here http://lambda-the-ultimate.org/classic/message4172 .html) and others as really helping to turn the tide and kept functional programming languages from being snuffed out.

    A lot of people don't see the point, having never programmed in a functional programming language like Haskell or ML. However even those people see dozens of cores on the horizon and wonder how they are going to deal with the debugging issues associated with all of the threads to keep those processors churning.

    Functional programming offers an alternative viewpoint that is arguably much better suited to handle multiple CPUs working on large datasets. A case for this was recently reiterated by Tim Sweeney of Epic Megagames fame who said "in a concurrent world, imperative is the wrong default!" http://www.st.cs.uni-sb.de/edu/seminare/2005/advan ced-fp/docs/sweeny.pdf.

    Haskell has brought Software Transactional Memory (STM) into play offering an alternative approach to traditional mutexes and locks that is compositional in nature unlike locking models. This is an approach that isn't readily emulable in an imperative setting because of the lack of guarantees about side effects. http://research.microsoft.com/~simonpj/papers/stm/ index.htm.

    These are solutions to real problems that we are experiencing today, not some academic sideshow, and they arise from a school of thought that he helped bring a great deal of attention to.

    If you want to do something to remember Backus take the time to learn OCaml or Haskell or even just take the time to learn how to effectively use the map and fold functions in Perl, PHP or Ruby.

    It is his willingness to turn his back on what was percieved as his greatest work when confronted with a better idea for which I will remember him and I am a better programmer today for having learned what I could from his ideas.

    --
    Sanity is a sandbox. I prefer the swings.
  3. We've lost a wonderfully nice guy by TwobyTwo · · Score: 5, Interesting


    When I was in my early 20s and had been programming only a few years, and John was already a legend and IBM Fellow for his work on FORTRAN, I had the pleasure of meeting him informally a few times. You would have thought our positions and experiences were nearly the same. He was always as engaged and delighted with younger people like me as with other giants of the computer field, some of whom were standing right with us at those get togethers (Jim Gray comes to mind). John was extraordinarily decent, kind, and down-to-earth, and he will be very much missed.



    I think some of the wise guys/gals on this list are missing the point of the FORTRAN team's contributions. It wasn't that FORTRAN was the perfect language. To some degree, that wasn't even the goal. Quoting from an an article by Backus (full text is available only to ACM subscribers, unfortunately):

    "To this day I believe that our emphasis on object program efficiency rather than on language design was basically correct. I believe that had we failed to produce efficient programs, the widespread use of languages like FORTRAN would have been seriously delayed.".


    At the time the FORTRAN work was done, people didn't believe that a compiler could produce code that was fast enough. If you go back to the early references on FORTRAN you'll find that they implemented optimizations that were still considered sophisticated 15 years later. The difference is: the FORTRAN team did it at a time when nobody had done it before. Furthermore, they did it on an IBM 704 that would be too weak (if not too small!) to power a wrist watch today. Its core storage units were tens of cubic feet in size, and each held 4K 36 bit words, or just over 32K bytes in modern terms. Even the "high speed" drum storage units (like a disk, but with no seeking needed) held only 16K of those 36 bit words. On this machine, they built optimizations that were considered sophisticated even decades later, when machines had gotten much bigger and faster. Quoting from that same article:

    "It is beyond the scope of this paper to go into the details of the analysis which section 2 [I.e. the optimizer] carried out. It will suffice to say that it produced code of such efficiency that its output would startle the programmers who studied it. It moved code out of loops where that was possible; it took advantage of the differences between rowwise and column-wise scans; it took note of special cases to optimize even the exits from loops. The degree of optimization performed by section 2 in its treatment of indexing, array references, and loops was not equalled again until optimizing compilers began to appear in the middle and late sixties."

    The computing field has lost someone very special.

  4. Re:Wow. by mysticgoat · · Score: 5, Interesting

    I am inclined to blame him for Basic as well, because it started out as a kind of simplified Fortran.

    FORTRAN was the first working high level compiler language; BASIC was the first working interpreter language. Very different underlying structures.

    Now COBOL was the second major high level compiler language, and it was very much a reaction to FORTRAN, so I suppose using parent post's logic, we can blame Backus for COBOL. But then that cheapens the contributions of the Girl Admiral (Grace Hopper) who gave us such wonders as the nanosecond wire, and MULTIPLY 2 BY 2 GIVING FOUR.

    For the youngsters out there:

    1. FORTRAN (FORmula TRANslator) was the break-through from machine language and assembly to a higher level language with a compiler. Everything we do now is based on this; I believe that many mission critical engineering libraries are still in Fortran (they were a few years ago)
    2. COBOL (COmmon Business Oriented Language, Compiles Only By Odd Luck) was the second successful high level language. Its major improvement over Fortran was getting rid of triphasic logic (branch on <0, or =0, or >0) in favor of boolean logic (branch on !0 or 0). Its most noteworthy failing was the requirement to use the period punctuation mark (full stop) to end sections. This was particularly a problem for girl programmers, since at the time getting into trouble because you missed a period had serious consequences. Cobol simply put too much emphasis on a nearly invisible and easily missed period.
    3. BASIC (Beginners All-purpose Symbolic Instruction Code) made two big advances: first, it attempted to span both engineering and business computing (doing each with the same degree of imprecision); second and more important, it introduced the concept of using an interpreter rather than a compiler. Good stuff, that. Yet another baby step toward tomorrow's virtual machines. Most noteworthy program ever written in Basic: Eliza. Most significant long term contribution: the reaction to its spaghetti coding style, from which Pascal and modern procedure based programming arose.

    </drivel>

    It is hard for some of us graybeards to poke fun at Backus. His vision was the inspiration that has taken us all down this road.