Я думаю , современная Реализация Компилятора в ML является лучшим вводным компилятором, пишущий текст. Существует версия Java и версия C также, любой из которых мог бы быть более доступным, учитывая Ваше образование языков. Книга упаковывает много полезного основного материала (сканирование и парсинг, семантический анализ, записи активации, выбор инструкции, RISC и x86 поколение собственного кода) и различные "усовершенствованные" темы (компилирующий OO и функциональные языки, полиморфизм, сборку "мусора", оптимизацию и единственную статическую форму присвоения) в относительно небольшое пространство (~500 страниц).
я предпочитаю современную Реализацию Компилятора книге Дракона, потому что современная реализация Компилятора рассматривает меньше поля - вместо этого это имеет действительно твердое покрытие всех тем, которые необходимо было бы записать серьезному, достойному компилятору. После работы через эту книгу, Вы будете готовы заняться научно-исследовательскими работами непосредственно для большей глубины при необходимости в нем.
я должен признаться, что имею серьезную слабость к Niklaus Wirth Конструкция Компилятора. Это доступно онлайн как PDF. Я нахожу программирование Wirth эстетичным просто красивый, однако некоторые люди находят его стиль слишком минимальным (например, Wirth одобряет синтаксические анализаторы с рекурсивным спуском, но большую часть внимания курсов CS на инструменты парсера-генератора; проекты языка Wirth довольно консервативны.) Конструкция компилятора является очень сжатой дистилляцией основных идей Wirth, поэтому нравится ли Вам его стиль или не или нет, я настоятельно рекомендую чтение этой книги.
Это - просто проблема настройки клавиатуры. Ваш компьютер предполагает, что Ваша клавиатура является американской, но это является на самом деле британским (или что-то еще с тот перекрестное соединение). Довольно просто зафиксировать от терминала:
sudo dpkg-reconfigure keyboard-configuration