Задать вопрос

В чем отличие синтаксического и семантического анализа?

В процессе лексического анализа из исходного кода создается набор токенов. На этапе синтакического анализа на их основе строится дерево. А что происходит на этапе семантического анализа? Тем более, я читал, генерация кода производится на основе AST.
  • Вопрос задан
  • 1932 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 1
@Alexander1705
На этапе семантического анализа строится таблица символов, производится проверка типов и т.д.

То есть, програма может быть синтаксически верна, но содержать семантические ошибки:
int a = 0;
int *ptr = &b; // b - неопределено
ptr = a; // нет неявного приведения числа к указателю
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@NonameProgrammer
Семантика задаёт смысл. А семантический анализатор эту семантику проверяет, т.е имеет ли программа смысл
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы