From infinite to finite programs