Компілятор - це програма, яка читає програму, написану однією мовою (мова-джерело) і переводить її в іншу еквівалентну програму іншою мовою (цільовою мовою), переважно машинною мовою.
Існують різні фази компілятора, за допомогою яких ваш код вихідної мови сканується по черзі. Існує таблиця символів, яка відслідковує всі ключові слова, на які відскановано код коду мови.
Фаза 1: Лексичний аналізатор - читає всі символи у вихідній програмі та формує логічне розділення лексем (int, char, float, якщо інше, for, while тощо)
Фаза 2: Синтаксичний аналізатор - проаналізуйте структуру потоку лексем. Ієрархічний аналіз виразів, який включає постфікс / префікс тощо (a = b + c * d)
Фаза 3: Семантичний аналізатор - Введіть перевірку лексем (ціле число до реального, плаваюче тощо) та багато речей, таких як пріоритет оператора тощо.
Фаза 4: Генератор проміжного коду - a = b + c * de (temp1 = c * d, temp2 = temp1 + b, temp3 = temp2-e)
Фаза 5: Оптимізація коду - Різний аналіз (контрольний потік, потік даних, перетворення),
який виконує: Код надмірності, Подання констант, Частковий мертвий код, загальний підвираз, Код інваріантного циклу
Фаза 6: Створення коду - Створення цільового коду (здебільшого мови складання), що вводить значення в регістри
Усі ці етапи - це не що інше, як добре написані програми, і в цьому може бути N кількість недоліків.