Section: Scientific Foundations
Around and beyond the Curry-Howard correspondence
For two decades, the Curry-Howard correspondence was limited to the intuitionistic case but in 1990, an important stimulus spurred on the community following the discovery by Griffin that the correspondence was extensible to classical logic. The community then started to investigate unexplored potential fields of connection between computer science and logic. One of these fields was the computational understanding of Gentzen's sequent calculus while another one was the computational content of the axiom of choice.
Control operators and classical logic
Indeed, a significant extension of the Curry-Howard correspondence has been obtained at the beginning of the 90's thanks to the seminal observation by Griffin  that some operators known as control operators were typable by the principle of double negation elimination (¬¬AA ), a principle which provides classical logic.
Control operators are operators used to jump from one place of a program to another place. They were first considered in the 60's by Landin  and Reynolds  and started to be studied in an abstract way in the 80's by Felleisen et al  , culminating in Parigot's -calculus  , a reference calculus that is in fine Curry-Howard correspondence with classical natural deduction. In this respect, control operators are fundamental pieces of the full connection between proofs and programs.
The Curry-Howard interpretation of sequent calculus started to be investigated at the beginning of the 90's. The main technicality of sequent calculus is the presence of left introduction inference rules and two kinds of interpretations of these rules are applicable. The first approach interprets left introduction rules as construction rules for a language of patterns but it does not really address the problem of the interpretation of the implication connective. The second approach, started in 1994, interprets left introduction rules as evaluation context formation rule. This line of work culminated in 2000 with the design by Hugo Herbelin and Pierre-Louis Curien of a symmetric calculus exhibiting deep dualities between the notion of programs and evaluation contexts and between the standard notions of call-by-name and call-by-value evaluation semantics.
Abstract machines came as an intermediate evaluation device, between high-level programming languages and the computer microprocessor. The typical reference for call-by-value evaluation of -calculus is Landin's SECD machine  and Krivine's abstract machine for call-by-name evaluation  ,  . A typical abstract machine manipulates a state that consists of a program in some environment of bindings and some evaluation context traditionally encoded into a “stack”.
Delimited control extends the expressiveness of control operators with effects: the fundamental result here is a completeness result by Filinski  : any side-effect expressible in monadic style (and this covers references, exceptions, states, dynamic bindings, ...) can be simulated in -calculus equipped with delimited control.