It really depends what is meant by "math". Not everybody has the same perception of what maths are. I used to teach a language theory class where students had various backgrounds. CS students were bored because they don't like maths, and maths student were bored because it wasn't math to them.
Concerning compilers, they require non trivial maths. Parsing, type checking, code generation, register allocation and so on... The thing is that mostly you don't formally prove things like you would do in a maths class. But indirectly you use a lot of mathematical results.
To my own amusement, I've discovered that I tend to categorize as "math" those areas of mathematics which I struggled with, or am ignorant. Statistics? Differential equations? Math. Doing a DFS walk over a parse tree in order to do code-transformation optimizations? No math involved! Just some code.
It really depends what is meant by "math". Not everybody has the same perception of what maths are. I used to teach a language theory class where students had various backgrounds. CS students were bored because they don't like maths, and maths student were bored because it wasn't math to them.
Concerning compilers, they require non trivial maths. Parsing, type checking, code generation, register allocation and so on... The thing is that mostly you don't formally prove things like you would do in a maths class. But indirectly you use a lot of mathematical results.