Zalecane, 2019

Wybór Redakcji

Różnica między składnią a semantyką

Składnia i semantyka to bardzo ważne terminy związane z dowolnym językiem programowania. Składnia w języku programowania obejmuje zestaw dozwolonych fraz w języku, podczas gdy semantyka wyraża powiązane znaczenie tych fraz.

Istnieje pewna zależność między składnią a semantyką, w której każdy element semantyczny jest powiązany z co najmniej jedną interpretacją syntaktyczną, a drugi zapewnia, że ​​każda reprezentacja składniowa ma charakter odróżniający.

Wykres porównania

Podstawa do porównaniaSkładniaSemantyka
PodstawowyDopuszczalne zwroty w języku.Interpretacja wyrażeń.
BłędyObsługiwane w czasie kompilacji.Konfrontacja w czasie wykonywania.
RelacjaInterpretacja syntaktyczna musi mieć charakter odróżniający.Składnik semantyczny jest związany z reprezentacją składniową.

Definicja składni

Składnia języka programowania służy do oznaczania struktury programów bez uwzględniania ich znaczenia. Zasadniczo podkreśla strukturę, układ programu wraz z ich wyglądem. Obejmuje zbiór reguł, które walidują sekwencję symboli i instrukcji używanych w programie. Model pragmatyczny i model obliczeniowy określa te składniowe składowe języka programowania. Narzędzia ewoluowane do specyfikacji składni języków programowania to regularne gramatyki bezkontekstowe i atrybutowe.

Jakie jest jednak zastosowanie gramatyki w tym aspekcie? Gramary ogólnie są regułami przepisywania, których celem jest rozpoznawanie i generowanie programów. Gramatyka nie opiera się na modelu obliczeniowym, a nie jest używana w opisie struktury języka. Gramatyka zawiera skończony zestaw kategorii gramatycznych (takich jak fraza rzeczownikowa, fraza czasownikowa, artykuł, rzeczownik itp.), Pojedyncze słowa (elementy alfabetu) i dobrze sformułowane reguły określające kolejność, w której komponenty kategorii gramatycznych powinno się pojawić.

Analiza składni to zadanie wykonywane przez kompilator, który sprawdza, czy program ma odpowiednie skojarzone drzewo wyprowadzeń, czy też nie.

Składnię języka programowania można interpretować za pomocą następujących formalnych i nieformalnych technik:

  • Składnia leksykalna do definiowania reguł dla podstawowych symboli obejmujących identyfikatory, literały, znaki interpunkcyjne i operatory.
  • Konkretna składnia określa rzeczywistą reprezentację programów za pomocą symboli leksykalnych, takich jak alfabet.
  • Abstrakcyjna składnia przekazuje tylko istotne informacje o programie.

Rodzaje gramatyk

  • Gramatyka bezkontekstowa jest najczęściej używana do określenia całej struktury językowej.
  • Wyrażenia regularne opisują jednostki leksykalne (tokeny) języka programowania.
  • Gramele atrybutów określają kontekstową część języka.

Definicja semantyki

Termin semantyczny w języku programowania służy do określenia zależności między składnią a modelem obliczeń. Podkreśla interpretację programu, tak aby programista mógł go w prosty sposób zrozumieć lub przewidzieć wynik wykonania programu. Podejście znane jako semantyka skierowana do składni służy do mapowania konstrukcji składniowych do modelu obliczeniowego za pomocą funkcji.

Semantyka języka programowania może być opisana za pomocą różnych technik - semantyki algebraicznej, semantyki aksjomatycznej, semantyki operacyjnej, semantyki denotacyjnej i semantyki translacji.

  • Semantyka algebraiczna interpretuje program poprzez definiowanie algebry.
  • Semantystyczna semantyka określa znaczenie programu poprzez budowanie asercji dotyczących powiązania, które zatrzymuje się w każdym punkcie wykonywania programu (tj. W sposób dorozumiany).
  • Semantyka operacyjna porównuje języki do maszyny abstrakcyjnej, a program jest następnie oceniany jako sekwencja przejść stanu.
  • Denotująca semantyka wyraża znaczenie programu w postaci zbioru funkcji działających w stanie programu.
  • Semantyka tłumaczeniowa koncentruje się na metodach wykorzystywanych do tłumaczenia programu na inny język.

Kluczowe różnice między składnią a semantyką

  1. Składnia odnosi się do struktury programu napisanego w języku programowania. Z drugiej strony, semantyka opisuje związek między sensem programu a modelem obliczeniowym.
  2. Błędy składniowe są obsługiwane w czasie kompilacji. W przeciwieństwie do tego, błędy semantyczne są trudne do znalezienia i napotykają w czasie wykonywania.
  3. Na przykład w języku c ++ zmienna "s" jest deklarowana jako "int s;", aby ją zainicjować, musimy użyć wartości całkowitej. Zamiast używać liczby całkowitej, zainicjowaliśmy ją "Siedem". Ta deklaracja i inicjalizacja są poprawne pod względem składni, ale semantycznie niepoprawne, ponieważ "siedem" nie reprezentuje liczby całkowitej.

Wniosek

Składnia języka programowania jest zbiorem reguł określających strukturę lub formę kodu, podczas gdy semantyka odnosi się do interpretacji kodu lub związanego z nim znaczenia symboli, znaków lub jakiejkolwiek części programu.

Top