Instrukcja wiążąca

Z Wikipedii, wolnej encyklopedii

Instrukcja wiążącainstrukcja w danym języku programowania służąca uproszczeniu zapisu odwołań do pól rekordu (struktury) lub pól i metod obiektu.

Stosowanie instrukcji wiążącej[edytuj | edytuj kod]

Standardowo odwołania do pól rekordów lub pól i metod obiektu realizowane są za pomocą nazw kwalifikowanych tworzonych przy pomocy odpowiednich desygnatorów pól.

Przykład w języku Pascal:

 type
   tadres = record
     ulica : string[50];
     miasto : string[30]
   end;
   tosoba = record
     imie : string[20];
     nazwisko : string[30];
     adres : tadres
   end;
 var osoba : tosoba;

Odwołania do pól zmiennej osoba mają postać:

 osoba.imie:='Jan';
 osoba.nazwisko:='Kowalski';
 osoba.adres.ulica:='ul. Nowa 10/10';
 osoba.adres.miasto:='Wroclaw';

Takie odwołania do pól określonego rekordu w grupie instrukcji zaciemniają czytelność kodu źródłowego i utrudniają jego pisanie. W celu uproszczenia kodu wprowadzono instrukcję wiążącą.

Przykład w języku Pascal:

 { zastosowanie instrukcji wiążącej }
 with  osoba.adres do
   begin
     ulica:='ul. Nowa 10/10';
     miasto:='Wroclaw'
   end;

Działanie instrukcji wiążącej polega na powiązaniu niezdefiniowanych identyfikatorów ulica i miasto z rekordem wskazanym w nagłówku instrukcji wiążącej i w efekcie przypisanie polom tego rekordu (niewskazanego jawnie w instrukcji przypisania) odpowiednich wartości. Z powyższego wynika jasno, że choć powyższa konstrukcja nazwana została i zdefiniowana w językach jako „instrukcja”, tak naprawdę nie jest instrukcją (nie generuje żadnego dodatkowego kodu wynikowego), lecz jest dyrektywą dla kompilatora, ułatwiającą pisanie kodu źródłowego.

Języki programowania z instrukcją wiążącą[edytuj | edytuj kod]

JavaScript[edytuj | edytuj kod]

 with(obiekt)
   {
     instrukcje
   }

Modula 2[edytuj | edytuj kod]

 WITH rekord DO
   instrukcje
 END

Pascal[edytuj | edytuj kod]

 with identyfikator do instrukcja;

Visual Basic[edytuj | edytuj kod]

 With obiekt
    instrukcje
 End With

Bibliografia[edytuj | edytuj kod]