1. Реализация
1.1. Компилятор
1.1.1. Процесс
1.1.1.1. лексический анализ;
1.1.1.2. синтаксический анализ;
1.1.1.3. семантический анализ;
1.1.1.4. создание на основе результатов анализов промежуточного кода
1.1.1.5. оптимизация промежуточного кода;
1.1.1.6. создание объектного кода, в данном случае машинного
1.1.2. Достоинства
1.1.2.1. компиляция программы выполняется один раз;
1.1.2.2. наличие компилятора на устройстве, для которого компилируется программа, не требуется
1.1.3. Недостатки
1.1.3.1. компиляция — медленный процесс;
1.1.3.2. при внесении изменений в исходный код, требуется повторная компиляция.
1.2. Интерпретатор
1.2.1. способы
1.2.1.1. читать код и исполнять его сразу
1.2.1.2. читать код, создавать в памяти промежуточное представление кода (байт-код или p-код), выполнять промежуточное представление кода
1.2.2. Этапы работы
1.2.2.1. лексический анализ;
1.2.2.2. синтаксический анализ;
1.2.2.3. семантический анализ;
1.2.2.4. создание промежуточного представления кода (при чистой интерпретации не выполняется)
1.2.2.5. исполнение
1.2.3. Примеры
1.2.3.1. Perl, PHP, Python, Ruby, Erlang,АПЛ и Лисп.
1.2.4. Достоинства
1.2.4.1. возможность работы в интерактивном режиме
1.2.4.2. отсутствие необходимости перекомпиляции исходного кода после внесения изменений и при переносе кода на другую платформу
1.2.5. Недостатки
1.2.5.1. низкая производительность
1.2.5.2. необходимость наличия интерпретатора на устройстве, на котором планируется интерпретация программы
1.2.5.3. обнаружение ошибок синтаксиса на этапе выполнения