Как работают языки программирования?
Я бы предложил Вам изучить (на это уйдет не более двух недель) в следующем порядке :
1) основы ассемблера (вполне достаточно x86)
2) основы компиляции в ассемблер с языков C или Pascal (вычисление выражений, стековый кадр, пролог/эпилог и т.д.)
3) специфику компиляции объектно-ориентированных языков
Если захочется глубже и шире, то
4) основы байт-кода JVM или .NET и его интерпретацию
5) JIT-компиляцию
Здравый смысл - наше все! Всякий код выполняется какое-то ненулевое время.