Семантический анализ
2025-05-30 00:27Рановато я взялся в Си компиляторе за превращение AST в TAC. Бревна не приметил. Сначала следует заняться так называемым семантическим анализом. В языке Би такая штука отсутствовала напрочь, ведь типов не было. В Си же это суть языка. Основные задачи этого прохода:
- Построение таблицы символов. То есть имён переменных и функций. Привязка всех идентификаторов в AST к таблице символов.
- Построение таблицы типов. Сюда помещаются все определения struct, union и enum.
- Расстановка типов во всех выражениях в AST.
- Обнаружение неявных преобразований типов и вставка явных преобразований.
- Помещение инициализаторов в таблицу символов.
- Разметка циклов для операторов break и continue.