Instrukcja blokowa

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Instrukcja blokowa – (instrukcja złożona) jako instrukcja strukturalna jest elementem składni języków programowania strukturalnego, wydzielona część kodu źródłowego programu komputerowego, stosowane np. do grupowania sekwencji instrukcji składowych (prostych lub złożonych), ujmując je w nawiasy zdaniowe.

Instrukcja blokowa wyróżniona jest przez odpowiednie symbole składniowe (nawiasy zdaniowe) , np. w językach C, C++, Java symbolami takimi są nawiasy klamrowe { }, w Algolu i Pascalu słowa kluczowe begin end.

Instrukcja blokowa jest traktowana na takich samych zasadach jak pojedyncza instrukcja.

Rodzaje instrukcji blokowych[edytuj | edytuj kod]

W różnych językach programowania istnieją dwa rodzaje instrukcji blokowej:

  • instrukcja grupująca
  • instrukcja blokowa.

Instrukcja grupująca[edytuj | edytuj kod]

Z tego typu instrukcją mamy do czynienia w językach takich jak

 begin
   instrukcje
 end;
 DO;
   instrukcje
 END;

Instrukcje te grupują fragment kodu, który może być traktowany jak jedna instrukcja (w odniesieniu do instrukcji strukturalnych: warunkowych, pętli czy wyboru). Tego typu instrukcja blokowa jest więc tylko swoistym " nawiasem", nie ograniczającym zakresu deklaracji (np. zmiennych).

Instrukcja blokowa[edytuj | edytuj kod]

Ten rodzaj instrukcji jest rozszerzeniem w porównaniu do instrukcji grupującej. Instrukcja ta stanowi rzeczywisty blok z ograniczeniem zakresu zawartych w niej deklaracji (np. zmiennych).

 begin
   deklaracje zmienych lokalnych
   instrukcje
 end
 {
   deklaracje zmiennych lokalnych
   instrukcje
 }
 BEGIN;
   deklaracje zmiennych lokalnych
   instrukcje
 END;

Różnicę między oboma rodzajami instrukcji blokowej widać najlepiej na przykładzie języka PL/1, w którym występują obie instrukcje, mając różne możliwości i zastosowanie.

Języki strukturalne bez instrukcji blokowej[edytuj | edytuj kod]

Wiele języków strukturalnych nie zawiera instrukcji blokowej. Do tej grupy należą te języki programowania, w których każda instrukcja sterująca posiada własne słowo kluczowe zamykające instrukcję strukturalną, a także nie przewidziano możliwości deklarowania zmiennych lokalnych w bloku. Do takich języków należą między innymi: Basic, Comal, Visual Basic

Przykład Visual Basic:

 IF warunek THEN
   instrukcje
 END IF

Rozszerzenia instrukcji blokowych[edytuj | edytuj kod]

Algol[edytuj | edytuj kod]

Istnieje możliwość zastosowania instrukcji opuszczenia, aby wyjść z instrukcji blokowej:

 begin
   ...
   exit
   ...
 end

Clipper[edytuj | edytuj kod]

Postać instrukcji blokowej w języku Clipper:

 BEGIN SEQUENCE
   instrukcje
 [BREAK [wyrażenie]]
   instrukcje
 [RECOVER [USING parametr]]
   instrukcje
 END [SEQUENCE]

Rozszerzenie instrukcji blokowej w języku Clipper polega na wprowadzeniu możliwości kontroli wykonania zawartych w niej instrukcji i możliwości ich przerwania (np. w sytuacjach błędów), za pomocą instrukcji opuszczenia BREAK. Instrukcja ta ma rozszerzenie o możliwość podania wyrażenia, które zostanie podstawione pod parametr podany we frazie USING sekcji RECOVER, do której następuje przejście po napotkaniu instrukcji BREAK. Stosowanie instrukcji blokowej w tym języku jako nawiasu spinającego jest zbędne, gdyż składania każdej instrukcji strukturalnej definiuje słowo zamykające.

Przykłady[edytuj | edytuj kod]

Język C/C++

   while(W) I1;  // wykonywana dopóki spełniony jest warunek W

   I2;  // wykona się raz - nie objęte pętlą

   while(W)
   {
       I1;      // wykonywane dopóki spełniony jest warunek W
       I2;
   }

Język Pascal

   if(W) then I1;
   I2;

   if(W) then
   begin
      I1;
      I2;
   end;

Bibliografia[edytuj | edytuj kod]

  1. Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., ISBN 83-85060-53-7, ISSN 0867-6011
  2. Michał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360., Wydawnictwa Naukowo-Techniczne, Warszawa 1984, wydanie trzecie – zmienione, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0597-1
  3. Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ISBN 83-204-1101-7
  4. Wojciech Rogowski, Arkadiusz Serodziński, Clipper 5.0, Wydawnictwo PLJ, Warszawa 1991, ISBN 83-85190-20-1
  5. Jan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, ISBN 83-01-06146-4
  6. Joanna Jonkisz, Jan Makuch, Stanisław Starzak, Programowanie w językach Algol 60 i Fortran 1900, Wydawnictwo Politechniki Łódzkiej, Łódź 1982, Skrypty dla szkół wyższych, Politechnika Łódzka, Ośrodek Elektronicznej Techniki Obliczeniowej
  7. Jan Małuszyński, Krzysztof Pisecki, Algol 68. Wprowadzenie do języka Algol 68, A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff, .H. Lindsey, L.G.L.T. Meertens, R.G. Fisker, w tłumaczeniu Jana Małuszyńskiego i Krzysztofa Piseckiego, Zmieniony raport o języku algorytmicznym Algol 68, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Informatyka, ISBN 83-204-0161-5