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 C, C++ Pascal podprogramFunction F(ByVal P As Integer) As Integer ' blok podprogramu End Functionint F(int P) { /* blok podprogramu */ }function F(P: Integer): Integer; begin { blok podprogramu } end; instrukcja warunkowaIf warunek Then ' blok-if Else ' blok-else End Ifif(warunek) { /* blok if */ } else { /* blok else */ }if warunek then begin { blok if } end else begin { blok else } end; pętla repetycyjnaDo While warunek ' blok pętli Loopwhile(warunek) { /* blok pętli */ }while warunek do begin { blok pętli } end; instrukcja wyboruSelect Case wyrażenie ' blok instrukcji wyboru End Selectswitch(wyrażenie) { /* blok instrukcji wyboru */ }case wyrażenie do { blok instrukcji wyboru } end; struktura, rekordType nazwa_struktury ' pola struktury End Typestruct 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), BASIC, Visual Basic, Clipper, Forth, Modula-2, PL/I 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, C++ i podobne: { ... } (choć i w tych językach jest wyjątek: do ... while(warunek);), Lisp: ( ... ). 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.

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: 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 n.d. Basic n.d. C, C++ Clipper n.d. Forth n.d. JEAN n.d. Lisp Modula-2 n.d. Pascal n.d. PL/I n.d. PL/M n.d. Visual Basic n.d. n.d. – nie dotyczy

Przypisy Podręcznik Visual Basic na Wikibooks.

Bibliografia

Kategoria:Konstrukcje programistyczne