An experimental approach to analyzing software semantics using error flow information | Synapse