Since there is, typically, a one-to-one relationship between
assembly instructions and machine instructions, the instruction path length is frequently taken as the number of assembly instructions required to perform a function or particular section of code. Performing a simple
table lookup on an un
sorted list of 1,000 entries might require perhaps 2,000 machine instructions (on average, assuming uniform distribution of input values), while performing the same lookup on a
sorted list using a
binary search algorithm might require only about 40 machine instructions, a very considerable saving. Expressed in terms of instruction path length, this
metric would be reduced in this instance by a massive
factor of 50 a reason why actual instruction timings might be a secondary consideration compared to a good choice of
algorithm requiring a shorter path length. The instruction path length of an assembly language program is generally vastly different than the number of
source lines of code for that program, because the instruction path length includes only code in the executed control flow for the given input and does not include code that is not relevant for the particular input, or
unreachable code. ==High-level language (HLL) programs==