For the compiler writer:
Lexer and parser generators exist and are normally used.
Based on formalisms including: