Expressive Reversible Language : Aspects Of Semantics And Implementation