Toward a programming environment for combinatorial optimization: a case study oriented to max-flow computations