プログラムの処理があちらこちらに移り、処理の流れが複雑で絡まったような状態のプログラムのことを言う。
このようなプログラムは、処理の順序がわかりにくいため、処理内容を理解したり、修正することが難しくなる。
原因として主なものは、プログラム言語のBASICなどで使われる「GOTO文」の濫用がある。このGOTO文は無条件に指定したラベルの位置へ処理を移す役割がある。使い方によっては便利であるが、同じくBASICで使われる「FOR〜NEXT文」や「WHILE〜WEND文」などのループの制御文を利用したプログラムと比べると、処理の流れがわかりにくく、プログラムが読みにくくなるほかメンテナンス性を低下させてしまうことがある。