Przemianowanie (programowanie)

Przemianowanie[1] w programowaniu to konstrukcja programistyczna dostępna w określonym języku programowania polegająca na przypisaniu pewnemu, wcześniej zdefiniowanemu obiektowi[a] występującemu w kodzie źródłowym, nowej, dodatkowej nazwy (np. identyfikatora). Stosowanie takiego zabiegu programistycznego ma w szczególności na celu skrócenie odwołań do pól zawartych ze złożonych strukturach danych, takich jak struktury, rekordy, unie, klasy itd., w przypadku zbyt rozbudowanych selekcji. Pozwala na zwiększenie przejrzystości kodu źródłowego i ułatwia pisanie kodu[2].

Przykładem przemianowania jest konstrukcja dostępna w języku Ada[1]:

identyfikator:typ renames obiekt_przemianowywany

Jeżeli zadeklarowany zostanie rekord:

type data is record
  dzien:INTEGER;
  miesiac:INTEGER;
  rok:INTEGER;
end record;
...
declare
  zapis:data;
...

można zastosować przemianowanie umożliwiające odpowiednie skrócenie zapisu selekcji (np. zapis.dzien) w odwołaniach do pól rekordu:

declare
  dz:INTEGER renames zapis.dzien;
begin
  ...
  dz:=5;
  ...
end;

Przemianowanie dostępne jest w takich językach jak: Ada[1][2], Cobol[2][3], Euclid[2].

W Cobolu konstrukcja związana z przemianowywaniem jest rozszerzona w stosunku np. do Ady, o możliwość grupowania sąsiadujących pól[3]. Ma postać[b]:

66 nazwa_1 RENAMES nazwa_2 [THRU nazwa_3]

Przemianowanie jest więc deklaracją nowej, dodatkowej nazwy, a nie zastąpieniem już istniejącej. Dotychczasowa nazwa danego obiektu jest nadal dostępna. Zawarte w literaturze przedmiotu, m.in. w pracy o Adzie[1] nazewnictwo w odniesieniu do tego pojęcia, wynikające z tłumaczenia angielskiego słowa renames[c], jest więc nieco mylące i nie odpowiada wprost polskiemu znaczeniu użytego słowa przemianowanie w odniesieniu do znaczenia konstrukcji programistycznej polegającej na dodaniu dodatkowej nazwy.

Efekt identyczny z przemianowaniem można uzyskać stosując nakładanie zmiennych identycznych typów. Przykładowo (Turbo Pascal)[4]:

var a : byte;
    b : byte absolute a;

Uwagi

  1. obiektu kodu nie należy mylić z instancją klasy w programowaniu obiektowym, jako obiekty kodu rozumieć tu należy w szczególności nazwane zmienne, pola struktur, podprogramy
  2. nawiasy klamrowe grupują część opcjonalną konstrukcji i nie są jej częścią, fraza THRU wiąże się ze wspomnianym grupowaniem pól
  3. słowa, które najczęściej jest używane w składniach języków do określenia tej konstrukcji

Przypisy

  1. a b c d A. Nico Habermann, Dewayne E. Perry, Ada dla zaawansowanych, Wydawnictwa Naukowo-Techniczne, Warszawa 1989 r., seria: Biblioteka Inżynierii Oprogramowania, ​ISBN 83-204-1058-4
  2. a b c d Michael Marcotty, Henry Ledgord, W kręgu języków programowania, tłumaczenie: Krystyna Jerzykiewicz, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Biblioteka Inżynierii Oprogramowania, ​ISBN 83-204-1342-7
  3. a b Eugeniusz Kurzydrem, Andrzej Macieliński, Urszula Szmidt, Eugeniusz Więcek, COBOL. Język programowania., Państwowe Wydawnictwo Ekonomiczne, Warszawa 1978, wydanie drugie
  4. Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika MikrokomputerówISBN 83-85060-53-7​, ISSN 0867-6011