У меня мало вопросов по программированию на стороне системы.
Да.
Используйте язык, который люди вокруг вас используют.
Вы должны знать о лексинге, синтаксическом анализе, таблицах символов, абстрактных синтаксических деревьях, оптимизации, промежуточных языках, архитектуре на основе стека и регистровых системах, генерации кода, форматах объектных файлов, линкерах, загрузчиках и т.д. многие ресурсы доступны в других вопросах о создании компиляторов здесь, в Stack Overflow.
Хорошо, я обязательно поеду с Python. Это отличный язык для всего, что особенно важно для разработки веб-сайтов. Изучение Python было лучшим, что я когда-либо делал. Я использовал Java/PHP в течение нескольких лет, и я никогда не оглядываюсь назад. Я достиг более высокого уровня компетентности, быстрее с Python, чем любой другой язык, который я пытался изучить.
Что касается разработки компиляторов, вы будете в хорошей компании с PyPy людьми, так что тем более выучить язык. PyPy - это как быстрая реализация интерпретатора Python (с JIT), так и продвинутый компилятор/фреймворк для реализации динамических языков.
уверен BASH и один полнофункциональный язык сценариев. Я предпочитаю Perl, но это зависит от вас.
для 3.) Вы должны изучить bison или yacc, lex и/или любые другие грамматики-парсеры (компиляторы-компиляторы).