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

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

В процессе лексического анализа из исходного кода создается набор токенов. На этапе синтакического анализа на их основе строится дерево. А что происходит на этапе семантического анализа? Тем более, я читал, генерация кода производится на основе AST.
  • Вопрос задан
  • 1902 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1С-программист
    10 месяцев
    Далее
  • Skillbox
    Профессия 1C-разработчик
    8 месяцев
    Далее
  • Hi-TECH Academy
    KL 004.2.4 Kaspersky SD-WAN
    2 дня
    Далее
Решения вопроса 1
@Alexander1705
На этапе семантического анализа строится таблица символов, производится проверка типов и т.д.

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

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

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