Language Rewriting