Содержание
- 2. Трансляторы бывают двух типов: компиляторы (compiler) и интерпретаторы (interpreter). Процесс компиляции можно представить как анализ (analysis)
- 3. Программа на входном языке – цепочка символов, составляющая исходную программу на языке программирования L1. Объектная программа
- 4. Интерпретатор В отличие от компилятора интерпретатор не создает никакой новой программы. Входными данными интерпретатора является не
- 5. Объектная программа Объектная программа может быть: последовательностью абсолютных машинных команд последовательностью перемещаемых машинных команд программой на
- 6. Трансляция в ассемблер Генерация кода для платформы .NET выполняетсяется виртуальной машиной MSIL, которая представляет собой высокоуровневый
- 7. Кросс-транслятор - это вид транслятора, который переводит программу, записанную в нотации одного языка программирования и выполняющуюся
- 8. Виртуальная машина Концепция виртуальной машины (virtual machine) предполагает, что исходный язык транслируется в коды некоторой специально
- 9. Компиляция "на лету" (Just-In-Time compiling) Байт-код интерпретируется виртуальной машиной – Java Virtual Machine (Java VM, JVM)
- 10. Фазы процесса трансляции (compilation phases) Процесс создания компилятора можно свести к решению нескольких задач, которые распределяются
- 11. Лексический анализатор выполняет распознавание лексем языка и замену их соответствующими кодами Лексический анализатор читает поток символов,
- 12. Создание токенов и таблицы лексем Лексический анализатор читает поток символов, составляющих исходную программу, и группирует эти
- 13. Синтаксический анализатор (syntax analyzer, parser) необходим для того, чтобы выяснить, удовлетворяют ли предложения, из которых состоит
- 14. Видозависимый анализ (type checking), также называемый семантическим анализом (semantic analysis), обычно заключается в проверке правильности типа
- 15. Основная цель фазы оптимизации (code optimization) заключается в преобразовании промежуточного представления программы в целях повышения эффективности
- 16. Фаза генерации кода (code generator) Генератор кода получает в качестве входных данных промежуточное представление исходной программы
- 17. Одна или несколько фаз компиляции могут выполняться на одном просмотре. Например, лексический анализ и синтаксический анализ
- 18. Обобщенная структура транслятора Учитывая схожесть компилятора и интерпретатора, рассмотрим фазы, существующие в компиляторе. В нем выделяются:
- 19. Обобщенная структура компилятора
- 20. Обобщенная структура интерпретатора
- 21. Обобщенная схема синтаксического анализатора
- 22. Варианты взаимодействия блоков транслятора Организация процессов трансляции, определяющая реализацию основных фаз, может осуществляться различным образом. Это
- 23. Многопроходная схема взаимодействия блоков компилятора
- 24. Однопроходная схема взаимодействия блоков компилятора при управлении, инициируемом лексическим анализатором
- 25. Однопроходная схема взаимодействия блоков компилятора при управлении, инициируемом синтаксическим анализатором
- 26. Однопроходная схема взаимодействия блоков интерпретатора
- 27. 2-х проходная схема с генерацией полного промежуточного представления
- 28. Эмуляция промежуточного представления
- 29. Эмуляция скомпилированного объектного кода
- 31. Скачать презентацию