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

Przypisy

  1. 1 2 3 4 Podręcznik Visual Basic na Wikibooks.
  2. 1 2 3 4 John Walkenbach: Excel 2003 PL. Programowanie w VBA.. HELION, 2004. ISBN 837361-504-0. (pol.).
  3. 1 2 3 Brian W. Kernighan, Dennis M. Ritche: Język C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1067-3. (pol.).
  4. 1 2 3 Jan Bielecki: Turbo C z grafiką na IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.).
  5. 1 2 3 4 5 6 Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.).
  6. 1 2 3 Michał Iglewski, Jan Madey, Stanisław Matwin: Pascal. Język wzorcowy – Pascal 360. Wyd. trzecie – zmienione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
  7. 1 2 3 Andrzej Marciniak: Borland Pascal 7.0. Poznań: Nakom, 1994, seria: Biblioteka Użytkownika Mikrokomputerów. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
  8. 1 2 3 Mike Ducka, tłumaczenie: Marcin Turski: Języki mikrokomputerów. Przewodnik dla początkujących. Basic, Pascal, Logo, Prolog, Comal, Forth. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988. ISBN 83-204-0966-7. (pol.).
  9. 1 2 A. Nico Habermann, Dewayne E. Perry: Ada dla zaawansowanych. Warszawa: Wydawnictwa Naukowo-Techniczne, 1989, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1058-4. (pol.).
  10. 1 2 Michał Morawski, Antoni M. Zajączkowski: Wstęp do programowania w języku Ada’95. Wyd. drugie. Łódź: 2004. [dostęp 2011-01-29]. (pol.).
  11. 1 2 Zbigniew Czech, Krzysztof Nałęcki, Stanisław Wołek: Programowanie w języku BASIC. Wyd. drugie uzupełnione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1985. ISBN 83-204-0776-1. (pol.).
  12. 1 2 Wacław Iszkowski: Nauka programowania w języku BASIC dla początkujących. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0834-2. (pol.).
  13. 1 2 Wojciech Rogowski, Arkadiusz Serodziński: Clipper 5.0. Warszawa: Wydawnictwo PLJ, 1991. ISBN 83-85190-20-1. (pol.).
  14. 1 2 Jan Bielecki: Język FORTH. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Mikrokomputery. ISBN 83-204-0930-6. (pol.).
  15. 1 2 Jan Ruszczyc: Poznajemy FORTH. Warszawa: SOETO, 1987, seria: Informatyka mikrokomputerowa. (pol.).
  16. 1 2 Niklaus Wirth: Modula 2. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0828-8. ISSN 0867-6011. (pol.).
  17. 1 2 Jan Bielecki: Rozszerzony PL/I i JCL w systemie OS/RIAD. Warszawa: Państwowe Wydawnictwo Naukowe, 1986, seria: Biblioteka Informatyki. ISBN 83-01-06146-4. (pol.).
  18. 1 2 M. I. Auguston i inni: Programowanie w języku PL/1 OS JS. Warszawa: Państwowe Wydawnictwo Naukowe, 1988. ISBN 83-01-07463-9. (pol.).
  19. 1 2 Jacek Martinek: Lisp. Opis, realizacja i zastosowania.. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0045-7. (pol.).
  20. Jerzy Bettek, Bronisław Rudak, Barbara Rudakowa: Język konwersacyjny JEAN. Wrocław: Wydawnictwo Politechniki Wrocławskiej, 1975, seria: Skrypt wydany w serii Biblioteka WASC. (pol.).
  21. Kazimierz Orlicz: Język konwersacyjny JEAN z elementami programowania w Fortranie. Wrocław: Wydawnictwo Politechniki Wrocławskiej, 1977, seria: Skrypt wydany w serii Biblioteka WASC. (pol.).
  22. Jan Bielecki: PL/M język programowania mikroprocesorów. Wyd. drugie uzupełnione. Warszawa: Wydawnictwa Komunikacji i Łączności, 1987, seria: Elektronizacja. zeszyt 25. (pol.).
  23. Jan Bielecki: System operacyjny ISIS-II. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0893-8. (pol.).

Bibliografia

  • Michael Marcotty, Henry Ledgord, tłumaczenie: Krystyna Jerzykiewicz: W kręgu języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1342-7. (pol.).
  • John E. Nicholls: Struktura języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Informatyka. ISBN 83-204-0246-8. (pol.).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.