Найти в Дзене
Игорь Пшеничный

Браузер и интерпретатор JavaScript

Что такое браузер:
Браузер - прикладное программное обеспечение. Браузер предоставляет движок рендеринга и движок обработки скриптов.
Движок рендеринга он же layout engine, занимаеться обработкой и отображением HTML кода, парсит HTML код, строит объектное дерево документа ( DOM ) и визуализирует его с помощью CSS.Движки рендеринга:KHTML, WebKit, Blink, Gecko.
Движок обработки скриптов он же script engine, среда выполнения js кода в браузере, предоставляет API для работы JS с DOM деревом( объектами ). Движки обработки скриптов:
Mozilla: SpiderMonkey, Rhino, Tamarin, Servo
Google: V8 .
Node.js:
Node.js - программная платформа, основанная на движке V8. Предоставляет API( написанный на C++ ) для возможности работы JS с устройствами ввода-вывода, подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JS кода.
Как работает интерпретатор:
Интерпретатор выступает в роли переводчика высокоуровневого языка программирования ( высокого уровня абстр
Оглавление

Что такое браузер:


Браузер - прикладное программное обеспечение. Браузер предоставляет движок рендеринга и движок обработки скриптов.
Движок рендеринга он же layout engine, занимаеться обработкой и отображением HTML кода, парсит HTML код, строит объектное дерево документа (
DOM ) и визуализирует его с помощью CSS.Движки рендеринга:KHTML, WebKit, Blink, Gecko.


Движок обработки скриптов он же script engine, среда выполнения js кода в браузере, предоставляет API для работы JS с DOM деревом(
объектами ). Движки обработки скриптов:
Mozilla:
SpiderMonkey, Rhino, Tamarin, Servo
Google:
V8 .


Node.js:


Node.js - программная платформа, основанная на движке V8. Предоставляет API(
написанный на C++ ) для возможности работы JS с устройствами ввода-вывода, подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JS кода.
-2


Как работает интерпретатор:


Интерпретатор выступает в роли переводчика высокоуровневого языка программирования (
высокого уровня абстракции ) в инструкции ( машинный код ) понятные процессору.
Он построчно анализирует код (
считывает, на лету ), производит над ним ряд определённых действий, исполняет и уничтожает.JS интерпретируемый язык, то есть для его работы требуется программа-интерпретатор. Например, при запуске кода на сервере в роли интерпретатора будет выступать Node.js, а в браузере один из указанных выше.

Для понимая производимых интерпретатором с исходным кодом манипуляций необходимо разобрать все этапы его работы:


1. Чтение инструкции ( кода )

2. Парсинг или лексический анализ - это разбиение кода на более маленькие части( лексемы, токены ). Лексема — это последовательность буквенно-цифровых символов в Токене.
(
Лексический анализ (сканер) — это часть компилятора, которая читает литеры программы на исходном языке и строит из них слова (лексемы) исходного языка. На вход лексического анализатора поступает текст исходной программы, а выходная информация передается для дальнейшей обработки компилятором на этапе синтаксического разбора. С теоретической точки зрения лексический анализатор не является обязательной, необходимой частью компилятора. Однако существуют причины, которые определяют его присутствие практически во всех компиляторах. )

3. Синтаксический разбор и создание абстрактного синтаксического дерева (AST)
(
Синтаксический разбор — это основная часть компилятора на этапе анализа. Она выполняет выделение синтаксических конструкций в тексте исходной программы, обработанном лексическим анализатором. На этой же фазе компиляции проверяется синтаксическая правильность программы. Синтаксический разбор играет главную роль — роль распознавателя текста входного языка программирования. )

4. Трансляция.
(
Трансляция программы - преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа - исходным кодом. Выходной язык называется целевым языком или объектным кодом
. )

(
Генерация кода - это фаза, непосредственно связанная с порождением команд, составляющих предложения выходного языка и в целом текст результирующей программы. Это основная фаза на этапе синтеза результирующей программы. Кроме непосредственного порождения текста результирующей программы генерация обычно включает в себя также оптимизацию — процесс, связанный с обработкой уже порожденного текста. Иногда оптимизацию выделяют в отдельную фазу компиляции, так как она оказывает существенное влияние на качество и эффективность результирующей программы. )

5. Оптимизация.
(
Оптимизация - сокращение размера машинного кода и ускорение работы )

6. Выполнение.
(
Выполнение кода на процессоре компьютера, на котором он запущен )

-3

Игорь Пшеничный