Є багато популярних мов. Але, вчені-комп’ютери говорять нам, що для того, щоб зрозуміти поведінку програм на цих мовах однозначно і недвозначно сперечатися з поведінкою програми (наприклад, довести їх ідентичність), нам потрібно перекласти їх на іншу, добре зрозумілу мову. Вони називають таку мову "семантикою". Автори пропонують одну з багатьох семантик. Вони пояснюють значення їх конструкцій і те, як ви можете перекласти свою мову на їхню. Як тільки ви це зробите, всі зрозуміють вашу програму, кажуть вони.
Виглядає добре, все ж я щось не розумію. Чи кажуть нам, що вони вводять іншу мову, щоб зрозуміти першу? Чому ми розуміємо це краще, ніж оригінальний? Чому ця семантика краща за це? Чому б не вивчити семантику С відразу, а не вигадувати іншу мову для опису семантики С? Те саме стосується синтаксису. Чому я не задаю те саме питання щодо синтаксису?
PS У коментарях я чую, що семантика не означає іншої мови чи перекладу на неї. Але формальна семантика для VHDL говорить про те, що якщо ви щось розумієте лише одним способом, ви цього не розумієте, і "значення сенсу" можна вказати, якщо ми надамо мові механізм, який переводить її на іншу (відому) мову. Тобто "семантика - це відношення між формальними системами". У семантиці мов програмування Хеннесі говорить, що семантика дозволяє формально обробити програму «значенням», коли семантика подається як BNF або синтаксична діаграма. Що таке формальна система, якщо не мова?
PS2 Чи можна сказати, що синтез HW даної програми HDL у взаємозв'язок воріт є процесом вилучення семантики? Потім ми перекладаємо (опис високого рівня) на мову (низький рівень), яку ми розуміємо.