Ten artykuł dotyczy zagadnienia z dziedziny informatyki. Zobacz też:inne znaczenia.
Komputer AppleiMac G4Zdjęcie częściserwerówFundacji Wikimedia, 2004 rokKomputer EC-1035Wyprodukowany w Polsce komputerR-32Komputer analogowyELWAT, Od lewej:woltomierz cyfrowy,dalekopis,oscyloskop, stojaki komputeraPrzekaźnikowyHarvard Mark IKomputerENIAC wraz z obsługą.Komputer kryptologicznyColossus Mark IIReplika pierwszego komputera z programem przechowywanym w pamięci.Museum of Science and Industry w Manchesterze w Wielkiej Brytanii.MinikomputerK-202IBM System 360 model 20 (360/20)Przykładnotebooka firmyIBMKonsola superkomputeraCDC 6600Zainstalowany w Polsce superkomputerZeus (fragment)
Mimo że mechaniczne maszyny liczące istniały od wielu stuleci, komputery w sensie współczesnym pojawiły się dopiero w połowie XX wieku, gdy zbudowano pierwsze komputery elektroniczne. Miały one rozmiary sporych pomieszczeń i zużywały kilkaset razy więcej energii niż współczesnekomputery osobiste (PC), a jednocześnie miały miliardy razy mniejsząmoc obliczeniową. Współcześnie są prowadzone także badania nadkomputerami biologicznymi,optycznymi ikwantowymi.
Małe komputery mogą zmieścić się nawet w zegarku i są zasilane baterią. Komputery osobiste stały się symbolemery informatycznej. Najliczniejszymi maszynami liczącymi sąsystemy wbudowane sterujące najróżniejszymi urządzeniami – ododtwarzaczy MP3 i zabawek poroboty przemysłowe.
Komputer od typowegokalkulatora odróżnia zdolność wykonywania wielokrotnie, automatycznie powtarzanych obliczeń, wedługalgorytmicznego wzorca zwanegoprogramem, gdy tymczasem kalkulator może zwykle wykonywać tylko pojedyncze działania. Granica jest tu umowna, ponieważ taką definicję komputera spełniają też kalkulatory programowalne (naukowe,inżynierskie), jednak kalkulatory służą tylko doobliczeń numerycznych, podczas gdy nazwakomputer najczęściej dotyczy urządzeń wielofunkcyjnych.
Jakkolwiek istnieją mechaniczne urządzenia liczące, które potrafią realizować całkiem złożone programy, zazwyczaj nie zalicza się ich do komputerów. Warto jednak pamiętać, że prawzorem komputera jest abstrakcyjny model zwanymaszyną Turinga, a pierwsze urządzenia ułatwiające obliczenia były znane wstarożytności, na przykładabakus z 440 p.n.e.
Właściwie wszystkie współczesne komputery to maszynyelektroniczne. Próby budowaniakomputerów optycznych (wykorzystujących przełączniki optyczne), optoelektronicznych (połączenie elementów optycznych i elektronicznych),biologicznych (wykorzystujące wypreparowanekomórki nerwowe) czymolekularnych (wykorzystujące jakobramki logiczne pojedynczecząsteczki) są jeszcze w powijakach i do ich praktycznego zastosowania jest wciąż długa droga. Innym rodzajem komputera jestkomputer kwantowy, którego układ przetwarzający dane wykorzystuje efekty fizyczne wynikające zmechaniki kwantowej.
W definicji komputera mieszczą się też urządzenia do przeliczania wartości reprezentowanych przez wielkość ciągłą (napięcie lubprąd elektryczny). Programowanie ich polega na określeniu toru przetwarzania sygnałów przełącznikami i ewentualnie określeniu stałych za pomocąpotencjometrów. Komputery takie stosowano w połowie XX wieku i istniały nawet wyspecjalizowane w tym celuukłady scalone. Obecnie nie opłaca sięimplementowaćalgorytmów obliczeniowych w technice analogowej ze względu na niską cenęmikroprocesorów. Można jeszcze spotkać (np. wRosji) analogowe komputery balistyczne służące do obliczania toru pocisków artyleryjskich, jednak i tam zastępuje się je komputerami cyfrowymi.
To, co odróżnia współczesne komputery od wszystkich innych maszyn, to możliwość ichprogramowania, czyli wprowadzenia do pamięci komputera listyinstrukcji, które mogą być wykonane w innym czasie.
W większości przypadków instrukcje, które komputer wykonuje, są bardzo proste – dodawanie dwóch liczb, przeniesienie danych z jednego miejsca w inne, wyświetlenie komunikatu itd. Instrukcje te odczytywane są z pamięci komputera i zazwyczaj wykonywane są w tej samej kolejności, co w pamięci. Istnieją jednak instrukcje umożliwiające „skok” w pewne określone miejsce programu i wykonanie go z tego miejsca. Ponadto instrukcje skoku mogą być wykonanewarunkowo, co umożliwia wykonanie różnych zestawów instrukcji w zależności od uzyskanych wcześniej wyników obliczeń. Ponadto istnieją instrukcje umożliwiające tworzeniepodprogramów.
Programowanie można w pewnym stopniu przyrównać do czytania książki. W większości wypadków słowa odczytywane są po kolei, zdarzają się jednak momenty, gdy czytelnik wraca do wcześniejszego rozdziału lub omija nieciekawy fragment. Komputery mają możliwość wykonania pewnych instrukcji wpętli, dopóki nie zostanie spełniony jakiś warunek.
Można tu użyć przykładu człowieka próbującego zsumować kolejne liczby na kalkulatorze. Dodaje 1 + 2, do wyniku dodaje 3 i tak dalej. Przy próbie zsumowania 10 liczb nie stanowi to problemu, jednak już przy tysiącu po pierwsze zajmuje to bardzo dużo czasu, po drugie przy tak dużej ilości operacji istnieje duże prawdopodobieństwo błędu. Komputer z kolei wykona tę operację w ułamku sekundy, przy użyciu prostego programu:
mov#0,sum; ustaw sum na 0mov#1,num; ustaw num na 1loop:addnum,sum; dodaj num i sumadd#1,num; dodaj 1 do numcmpnum,#1000; porównaj num z 1000bleloop; jeżeli num <= 1000, wróć do 'loop'halt; koniec programu. wstrzymaj działanie
Po otrzymaniu rozkazu wykonania programu komputer wykona serię operacji dodawania. Prawdopodobieństwo wystąpienia pomyłki jest znikome. Komputery jednak nie potrafią myśleć samodzielnie i dany problem mogą rozwiązać wyłącznie według algorytmu przygotowanego przez człowieka. Inteligentna istota, napotkawszy podobne zadanie, mogłaby zorientować się, że do jego wykonania wystarczy użyć prostego równania:
Innymi słowy komputer wykona postawione przed nim zadanie, nie zastanawiając się nad efektywnością wykonanej przez niego „pracy”.
procesora – podzielonego na część arytmetyczno-logiczną, czyli układu, który faktycznie wykonuje wszystkie konieczne obliczenia oraz część sterującą (często obokCPU obecny jest takżeGPU czy procesor dźwięku)
pamięci RAM – (od ang. Random Access Memory), czyli układy scalone, które przechowują program i dane (umożliwia to między innymi samomodyfikację programu) oraz bieżące wyniki obliczeń procesora i stale, na bieżąco wymienia dane z procesorem
smartfony (ang.smartphone) – mają podobne podzespoły i oprogramowanie co komputery osobiste.
konsola – komputer wyspecjalizowany w programach rozrywkowych. Zazwyczaj korzysta z telewizora jako głównego wyświetlacza. Posiada ograniczone oprogramowanie przygotowane do wydajnego uruchamiania programów i gier. Na niektórych modelach można zainstalować innysystem operacyjny i wykorzystywać do specyficznych zastosowań, na przykład procesory graficzne konsoliPS3 nadają się na przykład do łamania różnego rodzaju kodów.
komputery domowe – poprzedniki komputerów osobistych, korzystające z telewizora jako monitora.
komputery mainframe – często o większych rozmiarach, których zastosowaniem jest przetwarzanie dużych ilości danych na potrzeby różnego rodzaju instytucji, pełnienie roliserwerów itp.
superkomputery – największe komputery o dużej mocy obliczeniowej, używane do czasochłonnych obliczeń naukowych isymulacji skomplikowanych systemów.
Atanasoff-Berry Computer – maszyna do rozwiązywania układów równań algebraicznych liniowych, skonstruowana w roku 1939 przezJohna Atanasoffa i jego studenta Clifforda Berry’ego.
Z3 – w pełni automatyczny komputer o zmiennym programie zbudowany przez niemieckiego inżynieraKonrada Zuse w 1941 roku.
Colossus – wyprodukowane przez rząd brytyjski podczas drugiej wojny światowej w liczbie 11 sztuk komputery lampowe, których zadaniem było łamanie szyfrów (zwłaszcza do złamania szyfrówmaszyny Lorenza).
ENIAC – tworzony w latach 1943–1945 elektroniczny komputer, który składał się z 18 tysięcylamp elektronowych, 1500 przekaźników, ważył 30 ton i miał wymiary 15 na 9 metrów.
↑Nazwacomputer, w użyciu od XVII wieku, oznaczała początkoworachmistrza (od czasownikato compute, obliczać). Pod koniec XIX wieku zaczęto jej używać w odniesieniu domaszyn liczących.