Nawias syntaktyczny

Nawias syntaktyczny – w programowaniu, to element składni określonego języka programowania służący definiowaniu strukturalnych elementów kodu źródłowego, takich jak bloki czy instrukcje strukturalne. Nawiasami syntaktycznymi w językach programowania są wybrane przez autorów konkretnego języka programowania słowa kluczowe, lub znaki nawiasów (symbole). Zarówno w przypadku słów kluczowych, jak i symboli, para nawiasów dla konkretnej konstrukcji, obejmuje słowo (lub symbol) otwierające oraz słowo (lub symbol) zamykające strukturę programową. Nawiasy syntaktyczne definiują takie elementy w kodzie źródłowym, jak np. instrukcje strukturalne, podprogramy, moduły, definicje typów strukturalnych (struktury, unie, rekordy, klasy itp.). Pośród języków programowania można wyróżnić języki, w których

  • dla każdego odrębnego bloku definiuje się unikatową parę nawiasów syntaktycznych, oraz języki, w których
  • definiuje się pewną jednolitą konstrukcję grupującą (np. instrukcję blokową), a pozostałe konstrukcje odnoszą się bądź do jednej (pojedynczej) instrukcji, bądź do tak zdefiniowanej konstrukcji grupującej (która jest traktowana jak pojedyncza instrukcja).
Przykłady nawiasów syntaktycznych
rodzaj bloku nawiasy unikatowe jednolita konstrukcja mieszane rozwiązania
Visual Basic[1][2] C[3][4][5], C++[5] Pascal[6][7][8]
podprogram
Function F(ByVal P As Integer) As Integer
  ' blok podprogramu
End Function
int F(int P)
 {
   /* blok podprogramu */
 }
function F(P: Integer): Integer;
 begin
   { blok podprogramu }
 end;
instrukcja warunkowa
If warunek Then
  ' blok-if
Else
  ' blok-else
End If
if(warunek)
 {
   /* blok if */
 }
else
 {
   /* blok else */
 }
if warunek then
 begin
   { blok if }
 end
else
 begin
   { blok else }
 end;
pętla repetycyjna
Do While warunek
  ' blok pętli
Loop
while(warunek)
 {
   /* blok pętli */
 }
while warunek do
 begin
   { blok pętli }
 end;
instrukcja wyboru
Select Case wyrażenie
  ' blok instrukcji wyboru
End Select
switch(wyrażenie)
 {
   /* blok instrukcji wyboru */
 }
case wyrażenie do
  { blok instrukcji wyboru }
end;
struktura, rekord
Type nazwa_struktury
  ' pola struktury
End Type
struct nazwa_struktury
 {
   /* pola struktury */
 }
nazwa_struktury=record
  { pola struktury }
end;

Przykładowymi językami, w których stosuje się pierwsze z powyższych rozwiązań, są takie języki programowania jak np. Ada)[9][10], BASIC[11][12], Visual Basic[1][2], Clipper[13], Forth[14][15], Modula-2[16], PL/I[17][18] i inne. W językach tych słowem zamykającym wielu konstrukcji jest słowo end. W pewnych przypadkach słowo to połączone jest z innym słowem, identyfikującym zamykaną strukturę (np. end function, end if, end select itd.). Językami, w których stosuje się drugie z rozwiązań, to np. język C[3][4][5], C++[5] i podobne: { ... } (choć i w tych językach jest wyjątek: do ... while(warunek);), Lisp[19]: ( ... ). Istnieją też języki w których stosuje się rozwiązania mieszane, tzn. wobec pewnej grupy konstrukcji stosuje się rozwiązanie pierwsze, a wobec innej – drugie. Tak jest np. w języku Pascal, w którym w odniesieniu do instrukcji i bloków (programu, podprogramów), stosuje się zapis grupujący (begin ... end), ale z wyłączeniem pewnych instrukcji (np. case) oraz innych elementów np. definicji typów, dla których istnieją odrębne struktury grupujące (np. record ... end), natomiast dla sekcji deklaracji: type, var, const, w ogóle nie definiuje się słowa zamykającego, a sekcja taka kończy się wraz z rozpoczęciem następnej sekcji lub na słowie begin[6][7][8].

Struktura nawiasów syntaktycznych może być bardziej rozbudowana, w porównaniu do nawiasów stosowanych w wyrażeniach. Obejmuje bowiem konieczność definiowania wielu sekcji w ramach danej struktury nawiasu. Dotyczy to przede wszystkim instrukcji warunkowych i instrukcji wyboru, w których musi istnieć możliwość wyboru jednego z wielu wariantów. Są to jednak elementy pośrednie stosowane wewnątrz pewnej pary nawiasów syntaktycznych.

Za przykład może posłużyć ogólna postać instrukcji warunkowej w języku Visual Basic[1][2]:

If warunek-1 Then      ' --- nawias syntaktyczny otwierający
  ' instrukcje-1
ElseIf warunek-2 Then  ' --- elementy pośrednie
  ' instrukcje-2
ElseIf warunek-3 Then  ' --- elementy pośrednie
  ' instrukcje-3
...
ElseIf warunek-n Then  ' --- elementy pośrednie
  ' instrukcje-n
Else                   ' --- elementy pośrednie
  ' instrukcje-else
End If                 ' --- nawias syntaktyczny zamykający
Nawiasy syntaktyczne w językach programowania
język programowania brak nawiasów unikatowe konstrukcje rozwiązania mieszane jednolite konstrukcje z pewnymi wyjątkami
Ada[9][10] N T N N n.d.
Basic[11][12] N T N N n.d.
C[3][4][5], C++[5] N N N T T
Clipper[13] N T N N n.d.
Forth[14][15] N T N N n.d.
JEAN[20][21] T N N N n.d.
Lisp[19] N N N T N
Modula-2[16] N T N N n.d.
Pascal[6][7][8] N N T N n.d.
PL/I[17][18] N T N N n.d.
PL/M[22][23] N N T N n.d.
Visual Basic[1][2] N T N N n.d.
n.d. – nie dotyczy
  1. a b c d Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie vb
    BŁĄD PRZYPISÓW
  2. a b c d Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie excelivba
    BŁĄD PRZYPISÓW
  3. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie c-kr
    BŁĄD PRZYPISÓW
  4. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie tc-jb
    BŁĄD PRZYPISÓW
  5. a b c d e f Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie cpp-jb
    BŁĄD PRZYPISÓW
  6. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie pascal
    BŁĄD PRZYPISÓW
  7. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie bp
    BŁĄD PRZYPISÓW
  8. a b c Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie kilka
    BŁĄD PRZYPISÓW
  9. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie ada
    BŁĄD PRZYPISÓW
  10. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie ada95
    BŁĄD PRZYPISÓW
  11. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie basic-zcz
    BŁĄD PRZYPISÓW
  12. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie basic-wi
    BŁĄD PRZYPISÓW
  13. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie clipper
    BŁĄD PRZYPISÓW
  14. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie forth_jb
    BŁĄD PRZYPISÓW
  15. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie forth_jr
    BŁĄD PRZYPISÓW
  16. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie modula2
    BŁĄD PRZYPISÓW
  17. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie pl1jb
    BŁĄD PRZYPISÓW
  18. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie pl1a
    BŁĄD PRZYPISÓW
  19. a b Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie lisp
    BŁĄD PRZYPISÓW
  20. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie jean
    BŁĄD PRZYPISÓW
  21. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie jeanfortran
    BŁĄD PRZYPISÓW
  22. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie plm
    BŁĄD PRZYPISÓW
  23. Błąd w przypisach: Błąd w składni elementu <ref>. Brak tekstu w przypisie o nazwie isisii
    BŁĄD PRZYPISÓW

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne