Компиляция — преобразование объектов (данных и операций над ними) с входного языка в объекты на другом языке для всей программы в целом с последующим выполнением полученной программы в виде отдельного шага. cprog.netlify.app
Процесс компиляции, как правило, состоит из нескольких этапов: specialitet.ru
- Лексический анализ. specialitet.ru Разбивает текст программы на элементы: идентификаторы, константы, служебные слова, комментарии. irbis.amursu.ru
- Синтаксический анализ. specialitet.ru Проверяется, в правильной ли последовательности следуют ключевые слова. dzen.ru
- Семантический анализ. specialitet.ru Проверяется, корректны ли программные выражения по своему смыслу. dzen.ru
- Создание промежуточного кода. specialitet.ru Осуществляется на основе результатов анализов. specialitet.ru
- Оптимизация промежуточного кода. specialitet.ru Упрощается, чтобы потреблять меньше ресурсов и выполняться быстрее. dzen.ru
- Создание объектного кода. specialitet.ru В данном случае машинного. specialitet.ru
Трансляция — преобразование программы, представленной на одном из языков программирования, в программу на другом языке. specialitet.ru Например, программа, написанная на языке высокого уровня (исходный код), для того, чтобы её понимал компьютер, проходит этап трансляции — преобразования в машинный код. specialitet.ru
Процесс трансляции включает в себя несколько фаз: irbis.amursu.ru
- Препроцессор. irbis.amursu.ru Предварительная фаза, которая выполняет обработку текста программы, не вдаваясь глубоко в её содержание. irbis.amursu.ru Он производит замену одних частей текста на другие, при этом сама программа так и остаётся в исходном виде. irbis.amursu.ru
- Лексический анализ. irbis.amursu.ru Лексика языка программирования — это правила «правописания слов» программы, таких как идентификаторы, константы, служебные слова, комментарии. irbis.amursu.ru
- Синтаксический анализ. irbis.amursu.ru Проверяется, в правильной ли последовательности следуют ключевые слова. dzen.ru
- Семантический анализ. irbis.amursu.ru Проверяется, корректны ли программные выражения по своему смыслу. dzen.ru
- Генерация кода. irbis.amursu.ru Осуществляется и его оптимизация. irbis.amursu.ru
В результате трансляции получается объектный модуль — некий «полуфабрикат» готовой программы, который потом участвует в её сборке. irbis.amursu.ru