A formal semantics for computer languages and its application in a compiler-compiler | Synapse