Abstract Interpretation, Symbolic Execution and Constraints