Трансляторы

Get Started. It's Free
or sign up with your email address
Трансляторы by Mind Map: Трансляторы

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. обнаружение ошибок синтаксиса на этапе выполнения

2. Виды

2.1. Диалоговый транслятор

2.2. Синтаксически-ориентированный (синтаксически-управляемый)

2.3. Однопроходной

2.4. Многопроходной

2.5. Оптимизирующий

2.6. Тестовый

2.7. Обратный

3. Возможности

3.1. диагностику ошибок

3.2. формирует словари идентификаторов

3.3. выдаёт для печати текст программы