Pojęcia

Składnia

Aby dany ciąg znaków mógł być rozpoznany jako program napisany w danym języku, musi spełniać pewne reguły, zwane składnią. Składnia opisuje:

  • rodzaje dostępnych symboli
  • zasady, według których symbole mogą być łączone w większe struktury

Składnia najczęściej opisywana jest w formalnym zapisie będącym połączeniem wyrażeń regularnych oraz notacji BNF lub EBNF. Poniżej przedstawiony jest przykład prostej gramatyki wzorowanej na językuLisp:

wyrazenie ::= atom | lista
atom  ::= liczba | symbol
liczba  ::= [+-]?['0'-'9']+
symbol  ::= ['A'-'Za'-'z'].*
lista  ::= '(' wyrazenie* ')'

Zapis ten określa wygląd i budowę kolejnych symboli:

  • wyrażeniem nazwiemy atom i listę
  • atomem nazwiemy każdą liczbę lub symbol
  • liczbą nazwiemy ciąg cyfr, który może zaczynać się opcjonalnie od znaku + lub -
  • symbolem nazwiemy dowolną sekwencję dużych i małych liter alfabetu łacińskiego
  • listą nazwiemy parę nawiasów, w której może się znaleźć zero lub więcej wyrażeń

Przykładowe ciągi, które spełniają podane reguły składni to: "12345", "()", "(a b c232 (1))".

 

Zauważmy, że na etapie przetwarzania składni w ogóle nie jest brane pod uwagę znaczenie poszczególnych symboli. W praktyce kod poprawny składniowo nie musi być poprawny semantycznie. Występuje tu analogia do języków naturalnych. Zdanie "Bźdźiągwy się mucioszą" jest poprawne pod względem gramatycznym, lecz nie posiada żadnego znaczenia, ponieważ zostały w nim użyte nieistniejące słowa.

Semantyka

Semantyka języka programowania definiuje precyzyjnie znaczenie poszczególnych symboli oraz ich funkcję w programie. Semantykę najczęściej definiuje się słownie, ponieważ większość z jej zagadnień jest trudna lub wręcz niemożliwa do ujęcia w jakikolwiek formalizm. Część błędów semantycznych można wychwycić już w momencie wstępnego przetwarzania kodu programu, np. próbę odwołania się do nieistniejącej funkcji, lecz inne mogą ujawnić się dopiero w trakcie wykonywania.

 

Typy danych

Każdy język operuje na jakimś zestawie danych, dlatego niezbędne jest podzielenie danych na odpowiednie typy, zdefiniowane ich właściwości oraz operacji, jakie można na nich realizować. Większość języków posiada typy danych do reprezentowania:

 

Od strony sprzętowej wszystkie te informacje wyrażane są za pomocą sekwencji zer i jedynek. Język programowania nakłada jedynie odpowiednie ograniczenia i zasady ich przetwarzania. Zjawisko konwersji wartości jednego typu na inną nazywa się rzutowaniem.



Dodaj komentarz






Dodaj

© 2013-2024 PRV.pl
Strona została stworzona kreatorem stron w serwisie PRV.pl