  In this paper, we study the complexity of execution in higher-order
programming languages. Our study has two facets: on the one hand we give an
upper bound to the length of interactions between bounded P-visible strategies
in Hyland-Ong game semantics. This result covers models of programming
languages with access to computational effects like non-determinism, state or
control operators, but its semantic formulation causes a loose connection to
syntax. On the other hand we give a syntactic counterpart of our semantic
study: a non-elementary upper bound to the length of the linear head reduction
sequence (a low-level notion of reduction, close to the actual implementation
of the reduction of higher-order programs by abstract machines) of simply-typed
lambda-terms. In both cases our upper bounds are proved optimal by giving
matching lower bounds. These two results, although different in scope, are
proved using the same method: we introduce a simple reduction on finite trees
of natural numbers, hereby called interaction skeletons. We study this
reduction and give upper bounds to its complexity. We then apply this study by
giving two simulation results: a semantic one measuring progress in
game-theoretic interaction via interaction skeletons, and a syntactic one
establishing a correspondence between linear head reduction of terms satisfying
a locality condition called local scope and the reduction of interaction
skeletons. This result is then generalized to arbitrary terms by a local
scopization transformation.
