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

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

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

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

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

Похожие вопросы
Aporia Севастополь
от 50 000 до 100 000 ₽
Clain Лимассол
от 5 000 €