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