syntax - языков - языки программирования высокого уровня




В чем разница между синтаксисом и семантикой языков программирования? (4)

Семантика - это то, что означает ваш код - что вы можете описать в псевдокоде. Синтаксис - это фактическая структура - все от переменных имен до полуколоней.

В чем разница между синтаксисом и семантикой в языках программирования (например, C, C ++)?


Синтаксис касается структуры или грамматики языка. Он отвечает на вопрос: как мне построить правильное предложение? Все языки, даже английский и другие человеческие (иначе называемые «естественные») языки имеют грамматики, то есть правила, которые определяют, правильно ли построено предложение.

Вот некоторые синтаксические правила языка Си:

  • отдельные заявления с точкой с запятой
  • заключить условное выражение оператора IF в круглых скобках
  • группировать несколько операторов в один оператор, заключая в фигурные скобки
  • типы данных и переменные должны быть объявлены перед первым исполняемым оператором (эта функция была отброшена на C99. C99 и последние допускают объявления смешанного типа).

Семантика касается значения предложения. Он отвечает на вопросы: действительно ли это предложение? Если да, то что означает это предложение? Например:

x++;                  // increment
foo(xyz, --b, &qrs);  // call foo

являются синтаксически действительными операторами C. Но что они означают? Является ли даже правильным пытаться преобразовать эти утверждения в исполняемую последовательность инструкций? Эти вопросы лежат в основе семантики.

Рассмотрим оператор ++ в первом утверждении. Во-первых, действительно ли это возможно?

  • Если x - тип данных с плавающей точкой, этот оператор не имеет смысла (в соответствии с правилами языка C) и, следовательно, является ошибкой, хотя оператор синтаксически корректен.
  • Если x является указателем на некоторый тип данных , смысл инструкции заключается в том, чтобы «добавить sizeof ( некоторый тип данных ) в значение по адресу x и сохранить результат в местоположение по адресу x».
  • Если x является скаляром, значение выражения «добавляет значение к значению по адресу x и сохраняет результат в местоположении по адресу x».

Наконец, обратите внимание, что некоторые семантики не могут быть определены во время компиляции и поэтому должны оцениваться во время выполнения. В примере оператора ++, если x уже имеет максимальное значение для своего типа данных, что происходит, когда вы пытаетесь добавить 1 к нему? Другой пример: что произойдет, если ваша программа попытается разыменовать указатель, значение которого равно NULL?

Таким образом, синтаксис - это концепция, которая касается только того, является ли предложение действительным для грамматики языка. Семантика касается того, имеет ли предложение справедливое значение.


Синтаксис: это относится к грамматической структуре языка. Если вы пишете язык c. Вы должны очень заботиться о том, чтобы использовать типы данных, токены [это может быть буквальный или символ типа «printf ()». Он имеет 3 вывода, «printf, (,)»]. Точно так же вы должны очень осторожно, как вы используете функцию, синтаксис функции, объявление функции, определение, инициализацию и ее вызов.

Хотя семантика, это касается логики или понятия предложения или высказываний. Если вы говорите или пишете что-то из понятия или логики. Тогда вы семантически ошибаетесь.


Синтаксис - это структура или форма выражений, операторов и программных единиц, но семантика - это смысл этих выражений, выражений и единиц программы. Семантика осуществляется непосредственно из синтаксиса . Синтаксис относится к структуре / форме кода, который задает конкретный язык программирования, но семантика имеет дело со значением, назначенным символам, символам и словам.





semantics