• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Polimorfizm - informatyka



    Podstrony: 1 [2] [3] [4]
    Przeczytaj także...
    Programista, zwany też potocznie koderem to osoba, która tworzy programy komputerowe w pewnym języku programowania. Termin ten może odnosić się także do specjalisty w jednej dziedzinie programowania. Większość programistów zna co najmniej kilka języków programowania (np. C, C++, Java), lecz specjalizuje się tylko w wybranych z nich. Nazwa głównego języka jest często dodawana do nazwy stanowiska, np. programista C++, aby podkreślić specjalizację.Przeciążanie operatorów (ang. operator overloading, przeładowanie operatorów) to rodzaj polimorfizmu występującego w niektórych językach programowania, polegający na tym, że operator może mieć różne implementacje w zależności od typów użytych argumentów (operandów).

    Polimorfizm (z gr. wielopostaciowość) – mechanizmy pozwalające programiście używać wartości, zmiennych i podprogramów na kilka różnych sposobów. Inaczej mówiąc jest to możliwość wyabstrahowania wyrażeń od konkretnych typów.

    Przyczyny stosowania polimorfizmu[ | edytuj kod]

    Podczas pisania programu wygodnie jest traktować nawet różne dane w jednolity sposób. Niezależnie czy należy wydrukować liczbę czy napis, czytelniej (zazwyczaj) jest, gdy operacja taka nazywa się po prostu drukuj, a nie drukuj_liczbę i drukuj_napis. Jednak napis musi być drukowany inaczej niż liczba, dlatego będą istniały dwie implementacje polecenia drukuj, ale nazwanie ich wspólną nazwą tworzy wygodny abstrakcyjny interfejs niezależny od typu drukowanej wartości.

    OCaml znany pierwotnie jako Objective Caml to wielo-paradagmatowy język programowania oraz implementacja tego języka w postaci zestawu narzędzi i bibliotek.Język grecki, greka (starogr. dialekt attycki Ἑλληνικὴ γλῶττα, Hellenikè glõtta; nowogr. Ελληνική γλώσσα, Ellinikí glóssa lub Ελληνικά, Elliniká) – język indoeuropejski z grupy helleńskiej, w starożytności ważny język basenu Morza Śródziemnego. W cywilizacji Zachodu zaadaptowany obok łaciny jako język terminologii naukowej, wywarł wpływ na wszystkie współczesne języki europejskie, a także część pozaeuropejskich i starożytnych. Od X wieku p.n.e. zapisywany jest alfabetem greckim. Obecnie, jako język nowogrecki, pełni funkcję języka urzędowego w Grecji i Cyprze. Jest też jednym z języków oficjalnych Unii Europejskiej. Po grecku mówi współcześnie około 15 milionów ludzi. Język grecki jest jedynym językiem z helleńskich naturalnych, który nie wymarł.

    Czasami nawet nie trzeba dostarczać różnych implementacji, przykładowo podczas implementacji stosu nie jest bardzo istotne, jakiego typu wartości będą na nim przechowywane. Można napisać ogólne algorytmy obsługujące stos i ewentualne ukonkretnienie pozostawić systemowi. Mechanizmy umożliwiające takie udogodnienia nazywane są właśnie polimorfizmem.

    Inferencja typów to technika używana w językach statycznie typizowanych, która zwalnia programistę z obowiązku pisania typów i przerzuca obowiązek identyfikacji typów na kompilator.Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.

    Polimorfizm statyczny i dynamiczny[ | edytuj kod]

    Wiele mechanizmów polimorficznych można napisać ręcznie, jednak wiąże się to często z koniecznością powielania kodu z jedynie niewielkimi poprawkami, a co za tym idzie rozrost kodu źródłowego i jego zaciemnienie. Istotą polimorfizmu jest, aby to system decydował o szczegółach, a nie programista. Przez system należy tu rozumieć kompilator i system czasu wykonania.

    Common Lisp Object System (CLOS) - zorientowane obiektowo rozszerzenie do Common Lisp, oparte na funkcjach ogólnych, dziedziczeniu wielokrotnym, kombinacji metod deklaracyjnych i protokole metaobiektowym. Pochodna CommonLoops, oparta na opracowanym przez Symbolics języku FLAVORS (Lisp z funkcjami obiektowymi) i LOOPS (Lisp Object-Oriented Programming System) firmy Xerox.C# (C Sharp, dosłownie "C-krzyżyk", "cis") – obiektowy język programowania zaprojektowany przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft.

    Niektóre decyzje mogą być podjęte już na etapie kompilacji, mamy wtedy do czynienia z polimorfizmem statycznym (czasu kompilacji). Czasami jednak decyzja musi zostać odłożona do momentu wykonywania programu – polimorfizm dynamiczny (czasu wykonania). Przykładem statycznego może być przeciążanie operatorów – to, którą wersję operatora należy wywołać, można ustalić podczas kompilacji, natomiast dynamicznego – metody wirtualne – konkretna wersja metody może być ustalona dopiero w czasie wykonywania programu.

    Stos (ang. Stack) – liniowa struktura danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). Ideę stosu danych można zilustrować jako stos położonych jedna na drugiej książek – nowy egzemplarz kładzie się na wierzch stosu i z wierzchu stosu zdejmuje się kolejne egzemplarze. Elementy stosu poniżej wierzchołka można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi.Duck typing (z ang. kacze typowanie) to rozpoznawanie typu obiektu nie na podstawie deklaracji, ale przez badanie metod udostępnionych przez obiekt. Technika ta wywodzi się z powiedzenia: "jeśli chodzi jak kaczka i kwacze jak kaczka, to musi być kaczką".


    Podstrony: 1 [2] [3] [4]




    Warto wiedzieć że... beta

    Dziedziczeniem (ang. inheritance) w programowaniu obiektowym nazywamy mechanizm współdzielenia funkcjonalności między klasami. Klasa może dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą pochodną lub potomną (w j. angielskim: subclass lub derived class), zaś klasa, z której następuje dziedziczenie — klasą bazową (w ang. superclass). Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Klasy pochodne posiadają obok swoich własnych metod i pól, również kompletny interfejs klasy bazowej.
    Programowanie funkcyjne (lub programowanie funkcjonalne) – filozofia i metodyka programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń.
    Python – język programowania wysokiego poziomu ogólnego przeznaczenia i rozbudowanym pakiecie bibliotek standardowych, którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością.
    Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.
    Mordechai (Moti) Ben-Ari (hebr.: מרדכי (מוטי) בן-ארי) - profesor informatyki znany ze swojego wkładu w rozwój języka Ada.
    Praporządek (ang. pre-order), zwany także quasi-porządkiem (ang. quasi-order) to relacja, która jest zwrotna i przechodnia. Praporządkiem określa się również relację przeciwzwrotną i przechodnią, tak zdefiniowana relacja jest ostrym porządkiem częściowym. Dalsza część artykułu omawia wersję zwrotną.
    Ada to strukturalny, kompilowany, imperatywny, statycznie typowany i obiektowy język programowania opracowany przez Jean Ichbiaha i zespół z CII Honeywell Bull w latach 70. XX wieku. Język ten wygrał konkurs zorganizowany przez Departament Obrony USA (U.S. Department of Defense – DoD), pokonując 19 innych projektów. Nazwa języka, nadana przez DoD, pochodzi od imienia lady Augusty Ady Lovelace, uważanej za pierwszą programistkę w historii.

    Reklama

    Czas generowania strony: 0.011 sek.