  Motivated by recent work on entanglement-assisted codes for sending messages
over classical channels, the larger, easily characterised class of
non-signalling codes is defined. Analysing the optimal performance of these
codes yields an alternative proof of the finite block length converse of
Polyanskiy, Poor and Verd\'u, and shows that they achieve this converse. This
provides an explicit formulation of the converse as a linear program which has
some useful features. For discrete memoryless channels, it is shown that
non-signalling codes attain the channel capacity with zero error probability if
and only if the dispersion of the channel is zero.
