Есть много популярных языков. Но компьютерные ученые говорят нам, что для того, чтобы точно понять поведение программ на этих языках и однозначно спорить с поведением программы (например, доказать их идентичность), нам нужно перевести их на другой, хорошо понятный язык. Они называют такой язык "семантикой". Авторы предлагают одну из многих семантик. Они объясняют смысл своих конструкций и как вы можете перевести свой язык на их. Как только вы это сделаете, все наверняка поймут вашу программу, говорят они.
Выглядит хорошо, пока я что-то не понимаю. Они говорят нам, что они вводят другой язык, чтобы понять первый? Почему мы понимаем это лучше, чем оригинал? Почему эта семантика лучше этой? Почему бы не изучить семантику C сразу же, а не изобретать другой язык для описания семантики C? То же самое относится и к синтаксису. Почему бы мне не задать тот же вопрос относительно синтаксиса?
PS В комментариях слышу, что семантика не означает другой язык или перевод на него. Но формальная семантика для VHDL говорит, что если вы понимаете что-то только одним способом, то вы не понимаете этого, и можно указать «значение смысла», если мы предоставим языку механизм, который переводит его на другой (известный) язык. То есть «семантика - это связь между формальными системами». Хеннесси в « Семантике языков программирования» говорит, что семантика позволяет формально обрабатывать «смысл» программы, когда семантика предоставляется в виде BNF или синтаксической диаграммы. Что такое формальная система, если не язык?
PS2 Могу ли я сказать, что синтез HW данной программы HDL во взаимосвязи ворот - это процесс извлечения семантики? Мы переводим (высокоуровневое) описание на (низкоуровневый) язык, который мы понимаем, впоследствии.