Tworzenie książki (wyłącz)
 Dodaj tę stronę do książki Pokaż książkę (0 stron) Proponowane strony

Zaszłość (programowanie)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, szukaj

Zaszłość w programowaniu[1], to element składni lub konstrukcja programistyczna, która występuje bądź występowała we wcześniejszych wersjach, standardach lub implementacjach, a w kolejnych został albo zniesiony, albo nie zalecany do dalszego stosowania, ewentualnie pozostał dla zachowania zgodności lecz stracił jakiekolwiek merytoryczne znaczenie.

Spis treści

[edytuj] Powstawanie zaszłości

Język programowania jest definiowany przez autorów. W toku użytkowania jego pierwszej implementacji, kolejnych standaryzacji i implementacji, język rozwija się i ewoluuje, najczęściej zgodnie z pewnymi tendencjami występującymi w informatyce, rozwojem systemów komputerowych obejmujących zarówno sprzęt jak i systemy operacyjne. Taka ewolucja powoduje, iż pewne konstrukcje i elementy języka, tracą na znaczeniu, stają się zbędne, czy wręcz niemożliwe do realizacji. Takie konstrukcje i elementy składni określane są mianem zaszłości. Nie zaleca się ich dalszego stosowania, a w następnych implementacjach lub standardach, mogą stać się w ogóle niedostępne. Oznacza to, że kod źródłowy napisany w danym języku programowania z użyciem zaszłości nie będzie mógł być prawidłowo użyty w przyszłych implementacjach, bez dokonania korekt eliminujących daną konstrukcję lub element składni języka.

[edytuj] Rodzaje zaszłości

Jak wyżej zaznaczono wstępnie zaszłości mogą mieć różny charakter. Dany element bądź konstrukcja języka może być:

[edytuj] Zaszłości w językach programowania

[edytuj] Większość języków nieobiektowych wysokiego poziomu np. Pascal, C

Instrukcja Goto pochodząca z asemblera skok bezwarunkowy. Nie zalecane gdyż burzy strukturę kodu.

[edytuj] Język C

W języku C, we wczesnych implementacjach języka, pewne, obecne elementy składni były definiowane odmiennie[1], np.:

[edytuj] Fortran

Fortran, to pierwszy język programowania wysokiego poziomu, w swych początkach, w dużej części definiowany dla poszczególnych komputerów indywidualnie. W języku tym wiele konstrukcji związanych ze specyfiką konkretnego systemu komputerowego, zostało pominiętych, jako zaszłość, w kolejnych standardach i implementacjach[2][3].

[edytuj] Modula 2

W języku Modula 2 wprowadzono zmiany w modułach definiujących, eliminując listę eksportową, która stała się zaszłością. Wprowadzona nowa zasada, że sama definicja takiego modułu stanowi listę eksportową, sprawiła, że lista eksportowa stała się zbędna[4].

[edytuj] Pascal

W języku Pascal przykładową zaszłością jest słowo packed, pełniące funkcję modyfikatora w deklaracji zmiennej strukturalnej (tablicowej, rekordowej), działającego jak dyrektywa kompilatora zlecająca wybór takiego rozmieszczenia elementów typu strukturalnego w pamięci, aby zmienna zajmowała jak najmniej miejsca w pamięci operacyjnej (a nie rozmieszczenie elementów np. od granicy słowa, czyli od adresu spełniającego pewne, narzucone kryterium, mogącego przyspieszać działanie programów)[5]. W późniejszych implementacjach, np. Turbo Pascal od wersji 4.0, typy strukturalne zawsze są „pakowane” i użycie bądź pominięcie słowa packed, nie ma żadnego znaczenia. Słowo to jednak zostało zachowane w celu wstecznej kompatybilności z kodami źródłowymi zapisanymi dla wcześniejszych wersji Pascala[6]. Podobnie jest z nagłówkiem programu program, który w Turbo Pascalu może być całkowicie pominięty[6].

[edytuj] Visual Basic, Basic

Język Visual Basic, jako sukcesor języka Basic, zawiera w sobie wiele zaszłości, szczególnie składniowych, przejętych zarówno z Basica jak i wcześniejszych wersji Visual Basica. Przykładem może być instrukcja obecnie wyeliminowanej wersji pętli WHILE … WEND. W językach tych (Basic i Visual Basic) można prześledzić również ewaluację zaszłości na przykładzie konstrukcji realizującej bezparametrowe pesudopodprogramy: GOSUB numer_linii ... RETURN. Konstrukcja ta w pierwszych wersjach języka Basic była jedyną, umożliwiającą realizację podprogramów. W kolejnych wersjach Bascia wprowadzono parametryzowane, "prawdziwe" podprogramy SUB ... END, wywoływane użytym w deklaracji i definicji podprogramu identyfikatorem (np. QBasic dostępny w MS DOS). W tym momencie w zasadzie konstrukcja pierwotna GOSUB numer_linii... RETURN stała się przestarzałą zaszłością, lecz była nadal utrzymywana głównie ze względu na zgodność i możliwość użycia kodów źródłowych napisanych dla wcześniejszych wersji Basica. Także Visual Basic i VBA przejął tę konstrukcję, choć oczywiście niezalecaną, gdyż wprowadzono nie tylko podprogramy SUB i FUNCTION ale i programowanie obiektowe. Niemniej w obrębie podprogramów nadal konstrukcja była dostępna. Obecnie, np. w Visual Basic 2008, jednego ze środowisk programistycznych dostępnych w serii Microsoft Visual Studio, całkowicie zrezygnowano z tej konstrukcji – nie można już stosować instrukcji GOSUB numer_linii... RETURN w tym systemie programowania.

Przypisy

  1. 1,0 1,1 Brian W. Kernighan, Dennis M. Ritche, Język C, Wydawnictwa Naukowo-Techniczne, Warszawa 1988, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-1067-3
  2. Michael Marcotty, Henry Ledgord, W kręgu języków programowania, tłumaczenie: Krysyna Jerzykiewicz, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-1342-7
  3. Ryszard K. Kott, Krzysztof Walczak. Programowanie w języku Fortran 77, Wydawnictwa Naukowo-Techniczne, Warszawa 1991, ISBN 83-204-1362-1
  4. Niklaus Wirth, Modula 2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0828-8
  5. 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
  6. 6,0 6,1 Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów ISBN 83-85060-53-7, ISSN 0867-6011
Źródło „http://pl.wikipedia.org/w/index.php?title=Zaszłość_(programowanie)&oldid=25488406
Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Dla czytelników
Dla wikipedystów
Narzędzia
Drukuj lub eksportuj

Polecamy: Pozycjonowanie, wózki dziecięce, Kino domowe, Viagra, Kredyty