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

В процессе лексического анализа из исходного кода создается набор токенов. На этапе синтакического анализа на их основе строится дерево. А что происходит на этапе семантического анализа? Тем более, я читал, генерация кода производится на основе AST.
  • Вопрос задан
  • 1809 просмотров
Решения вопроса 1
@Alexander1705
На этапе семантического анализа строится таблица символов, производится проверка типов и т.д.

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

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

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