Я аспирант CS, и я заинтересован в том, чтобы уделить немного свободного времени разработке веб-браузера Mozilla Firefox. Я хотел бы внести свой вклад в рендерер HTML, движок JavaScript и т. Д. Но у меня нет солидного опыта в написании парсеров или подобных вещей, и я не имею ни малейшего понятия, с чего начать.
Конечно, есть некоторые ссылки в https://developer.mozilla.org/En/Developer_Guide/, но так как Firefox уже очень большой проект, я не знаю, с чего мне начать учиться.
Итак, мой вопрос в том, какие основные вещи мне необходимо изучить, чтобы начать разработку веб-браузера, и откуда я могу это узнать (любые ссылки)? Нужно ли пересматривать, как писать парсеры / компиляторы? Как мне научиться писать HTML рендерер / движок JavaScript? Возможно ли это, учитывая, что это уже очень большие проекты? Некоторое время назад я скачал исходный код движка V8 JavaScript (http://code.google.com/p/v8/), но я не мог многое понять из его исходного кода, так как это был высоко оптимизированный код, и для начинающего, такого как я, не было много полезных комментариев, чтобы понять, что происходит.
Обновление:
Мне довольно комфортно работать с C, C ++, Java, PHP, C #, VB.Net, JavaScript, и мне больше интересно узнать, как веб-браузер анализирует веб-страницу, как он создает и поддерживает DOM, как применяется CSS, как Работает механизм перекомпоновки HTML, как он взаимодействует с механизмом JavaScript, как он взаимодействует с веб-сервером, как компоненты отображаются на экране и т. Д.