Hacker News new | past | comments | ask | show | jobs | submit login

Compilers don't require much math. Nothing difficult at least. (I guess if you're interested in compilers for functional languages this might not be as true). Same for operating systems, as far as I know. I have no experience with database engines. CS theory on the other hand is very mathematical, as are some more applied subfields such as cryptography or graphics.

Math is nice, and useful for some classes of problems, but it is certainly not needed for huge amounts of the programming done. Some people have this masochistic ideal of programming where if you're not solving problems that require the most sophisticated mathematical techniques then your problem isn't important. There are plenty of problems in programming that aren't particularly mathematical in nature and are very challenging. Compilers are one of these, as are many others.




> Compilers don't require much math.

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.


>It really depends what is meant by "math".

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.


Compilers (at least optimising ones) bloody well do! For example discrete maths/graph theory for control/data flow graphs or optimisation algorithms for register allocation/loop unrolling.

Or, if those don't count as maths to you - look up the polyhedral model: linear algebra applied to loop tiling/parallelisation.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: