Instrukcja blokowa
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
W różnych językach programowania istnieją dwa rodzaje instrukcji blokowej:
- instrukcja grupująca
- instrukcja blokowa.
Instrukcja grupująca
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
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 zmiennych 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
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
Istnieje możliwość zastosowania instrukcji opuszczenia, aby wyjść z instrukcji blokowej:
begin ... exit ... end
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
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
- Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., ISBN 83-85060-53-7, ISSN 0867-6011
- 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
- Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ISBN 83-204-1101-7
- Wojciech Rogowski, Arkadiusz Serodziński, Clipper 5.0, Wydawnictwo PLJ, Warszawa 1991, ISBN 83-85190-20-1
- 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
- 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
- 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