Фон
На странице Википедии о синтаксическом сахаре говорится:
В информатике синтаксический сахар - это синтаксис в языке программирования, предназначенный для облегчения чтения или выражения. Это делает язык «более сладким» для использования людьми: вещи могут быть выражены более четко, более кратко или в альтернативном стиле, который некоторые могут предпочесть.
Я не очень понимаю, в чем разница между синтаксическим сахаром и синтаксисом.
Я ценю тот факт, что сладкая версия может быть более ясной, более краткой, возможно, испариться с некоторыми шаблонами. Но я чувствую, что на некотором уровне весь синтаксис по сути делает это, чтобы сформировать абстракцию над тем, к чему компилируется код.
С той же страницы Википедии:
Языковые процессоры, включая компиляторы, статические анализаторы и т. П., Часто перед обработкой расширяют подслащенные конструкции в более фундаментальные конструкции, процесс, который иногда называют «десагерингом».
В качестве упражнения для размышления, если я принимаю слово «часто» в этом выражении как «всегда»: если бы разница заключалась лишь в том, «компилирует ли» компилятор синтаксис перед переходом к следующему этапу, как мог бы кодер, который не знает внутренностей компилятора знают (или заботятся), что такое синтаксис Sugar'd или нет?
Очень связанный вопрос на этом сайте "Строгое определение синтаксического сахара?" имеет ответ, который начинается:
ИМХО, я не думаю, что у вас может быть определение для синтаксического сахара, потому что эта фраза написана на BS и, вероятно, будет использоваться людьми, которые говорят о «настоящих программистах», использующих «настоящие инструменты» в «реальных операционных системах»
Что может указывать мне на то, что, возможно, между программистом, использующим язык, нет большой разницы? Возможно, разница заметна только автору компилятора? Хотя могут быть случаи, когда программисту, использующему язык, полезно знать, что скрыто под синтаксическим сахаром? (Но, возможно, в действительности любой дискурс на эту тему имеет тенденцию использовать этот термин в качестве пламени приманки?)
Суть вопроса
Итак ... краткая версия вопроса:
- Есть ли реальная разница между синтаксисом и синтаксическим сахаром?
- Для кого это важно?
Дополнительная пища для размышления
Бонус на противоречие темы:
На странице Википедии приведен пример:
Например, в языке C
a[i]
обозначение является синтаксическим сахаром для*(a + i)
Принимая во внимание, что другой ответ на вышеупомянутый связанный вопрос говорит о том же примере:
Теперь посмотрим
a[i] == *(a + i)
. Подумайте о любой программе на C, которая использует массивы любым существенным образом.
И резюмирует, что:
[]
Обозначения облегчает эту абстракцию. Это не синтаксический сахар.
Обратный вывод к тому же примеру!