Home > M.R. Bauer Foundation > 1997 Summary Report > Harry Mairson, Ph.D.
Scientific Retreat
Harry Mairson , Ph.D.
Associate Professor of Computer Science
Volen Center for Complex Systems
Brandeis University
Waltham, Massachusetts

Optimal Implementation of Functional Programming Languages:
Complexity, Linear Logic, and the Geometry of Interaction

This talk is a general survey of some issues at the branch points of logic, semantics, computation, and programming language design, rather than a report on particular research results of the speaker. It was felt that this more global outlook would be more informative to the researchers in the Volen Center, who are for the most part biological scientists. It is important, however, to remember that the Volen Center houses many different scientists with disparate research agendas. The point of this talk was to explain one such agenda.

Just as the world of freshman physics, with its massless beams and frictionless pulleys, describes the essence of the Newtonian world, and the Turing Machine defines the essence of computer architecture, the Lambda Calculus, whose properties we will discuss in some detail, defines the essence of programming languages. In particular, it allows a fundamental insight into the design of procedure calling protocols -- the mechanism that connects inputs and outputs in the functional style of programming.

In the "call-by-name" protocol, where arguments input to functions are not evaluated until they are needed, there is a fundamental and practical implementation problem where these arguments are recomputed each time they are needed. While a naive "caching" strategy works for base values, this naive approach fails when the argument is itself a function. We discuss an interpretative technology known as "optimal evaluation" to address this fundamental issue of sharing inputs in a functional computation.

It turns out that in recent years, a kind of logic has been invented that captures many of the computational issues involved in optimal evaluation. This logic is called "linear logic" -- it is also referred to as a "resource-conscious logic" which addresses the problem of persistence of truth in time. This problem is particularly acute in computations that cannot be reversed. It turns out that building blocks in this logic correspond strongly to technology employed in implementation of programming languages, and that we can learn more about one from studying the other. The fundamental paradigm of "computational logic" unifies the two, where we can extract real computational information from the structure of proofs.

Finally, we discuss the "geometry of interaction", a beginning approach to understanding the semantics of proofs and of computer programs. Two entirely different proofs of the same theorem should have different denotational meanings, while simplifying a proof (through so-called "cut elimination") should preserve denotational meaning. We look at the basic idea of the geometry of interaction in the lambda calculus, showing how it models information flow in a computer program.

 


 

Speaker Schedule  |  Reports from Previous Years
Top of Page | Life Sciences | Brandeis University