Istnieje wiele popularnych języków. Ale informatycy mówią nam, że aby zrozumieć zachowanie programów w tych językach, zdecydowanie i jednoznacznie spieramy się na zachowanie programu (np. Udowodnić ich tożsamość), musimy przetłumaczyć je na inny, dobrze zrozumiały język. Nazywają taki język „semantyką”. Autorzy proponują jedną z wielu semantyki. Wyjaśniają znaczenie ich konstrukcji i sposób, w jaki możesz przetłumaczyć swój język na ich. Gdy to zrobisz, wszyscy zrozumieją twój program, mówią.
Wygląda dobrze, ale czegoś nie rozumiem. Czy mówią nam, że wprowadzają inny język, aby zrozumieć pierwszy? Dlaczego rozumiemy to lepiej niż oryginał? Dlaczego ta semantyka jest lepsza? Dlaczego nie od razu uczyć się semantyki języka C zamiast wymyślać inny język do opisu semantyki języka C? To samo dotyczy składni. Dlaczego nie zadam tego samego pytania dotyczącego składni?
PS W komentarzach słyszę, że semantyka nie oznacza innego języka lub tłumaczenia na ten język. Ale Formalna semantyka dla VHDL mówi, że jeśli rozumiesz coś tylko w jeden sposób, to nie rozumiesz tego, a „znaczenie znaczenia” można określić, jeśli dostarczymy język z mechanizmem, który tłumaczy to na inny (znany) język. Oznacza to, że „semantyka jest relacją między systemami formalnymi”. Hennessy w Semantics of Programming Languages mówi, że semantyka pozwala na formalne przetwarzanie „znaczenia” programu, gdy semantyka jest dostarczana jako BNF lub diagram składniowy. Co to jest system formalny, jeśli nie język?
PS2 Czy mogę powiedzieć, że synteza HW danego programu HDL do połączenia bramek jest procesem ekstrakcji semantyki? Następnie tłumaczymy (wysoki poziom) opis na język (niski poziom), który rozumiemy.