Report on POPL 1999

Over 200 participants, an increase over last year's attendance , met in San Antonio, Texas. Three smaller conferences or workshops were also scheduled aroun d the conference. Andrew Appel of Princeton served as general chair, with the program chosen by a committee led by Alex Aiken of Berkeley. Rather than give a detailed discussion of the conference , I will focus on some of the highlights. Each day began with an invited talk. Fritz Henglein, of the University of Copenhagen, began th e conference with an invited talk on a tool, developed with Peter Eidorff, Christian IVlossin, Hennin g Niss, Morten Heine Sorensen, and Mads Tofte, for the analysis of COBOL programs. The group has built a commercial product (aptly named AnnoDomini l) that uses type theory and program analysis techniques to track date-related data. This represents a quite successful application o f new ideas in programming languages to real-world problems, and Henglein concluded with a lis t of lessons learned about such industrial applications. David Dill of Stanford spoke the secon d day on the successes of formal verification in hardware, and the prospects for software. Softwar e verification is an idea older than POPL, but Dill gave some particular reasons why one might b e hopeful now, given both the industrial context and lessons learned from hardware verification. Ton y Hoare of Oxford rounded out the invited talks ; his topic, "Theories of Programming : Top-Down and Bottom-Up and Meet-in-the-Middle" , touched on core ideas in semantics (the "top-down " approach) and operational understanding (the "bottom-up" approach), with the rapprochemen t (the "meet-in-the-middle") being algebraic laws of programs. Hoare has a unique perspective on the field, having given a very influential talk in the first POPL entitled "Hints on programmin g language design." Among the twenty-four contributed papers, two areas—program analysis and security—see m to be getting increasing attention at POPL. Program analysis alone accounted for about a third o f the presentations. Three papers focused on "usage analysis", the problem of trying to determin e when a subexpression or variable may be used later in a computation, or whether it is definitely no t used. Such analyses have applications in implementations of functional programming languages. In lazy languages like Haskell, for instance, the result of a computation is memoized so that i t need not be computed again ; if the computation is not used later, the …