Введіть невеликий арифметичний вираз і спостерігайте, як front-end компілятора перетворює його на токени, абстрактне синтаксичне дерево, проміжний код та оптимізований результат.
+ −) → множник (* /) → первинний елемент (число, змінна, вираз у дужках) — будуючи абстрактне синтаксичне дерево, що відображає пріоритет операторів.
Семантичний аналіз розв’язував би імена й типи; тут ми переходимо до проміжного представлення, генеруючи трьохадресний код. Етап оптимізації згортанням констант обчислює підвирази, операнди яких є константами на етапі компіляції, зменшуючи програму перед остаточною генерацією коду.