Kompyuter

Kasaysayan

Ang unang paggamit ng salitang "computer" ay naitala noong 1613 sa aklat na tinatawag na "The yong mans gleanings". Ito ay tumutukoy dito na isang tao na nagsasagawa ng mga kalkulasyon o pagkukwenta. Ang salitang ito ay nagpatuloy sa parehong kahulugan nito hanggang sa gitna ng ika-20 siglo. Mula ika-19 siglo, ang salitang "computer" ay nagsimulang mangahulugang isang makina na nagsasagawa ng mga pagkukwenta. Ang kasaysayan ng modernong kompyuter ay nagsimula sa dalawang magkahiwalay na mga teknolohiya, automadong kalkulasyon at pagiging mapoprograma ngunit walang isang kasangkapan na matutukoy na pinakamaagang kompyuter dahil sa hindi konsistenteng paglalapat ng terminong ito. Ang ilang mga kasangkapan tulad ng ilang mga pantulong na mekanikal sa pagkukwenta ay kinabibilangan ng Abacus na Sumerio na dinisenyo noong 2500 BCE, mga slide rule na inimbento noong mga 1620 at mekanismong antikythera na isang sinaunang astronomikal na analogong kompyuter na inimbento ng mga Sinaunang Griyego noong mga unang siglo BCE. Ang Griyegong matematikong si Hero ng Alehandriya (c. 10 CE-70 CE) ay nagtayo ng isang teatrong mekanikal na gumanap ng isang dula na tumagal ng 10 minuto at pinatakbo ng isang masalimuot na sistema ng mga lubid at drum na maituturing na paraan ng pagpapasya ng mga bahagi ng mekanismo na magsasagawa ng aling aksiyong at kailan. Ito ang esensiya ng pagpoprograma. Noong wakas ng ika-10 siglo, ang mongheng Pranses na si Gerbert d'Aurillac ay nagdala pabalik sa Espanya ng isang makinang inimbento ng mga moro na sumasagot ng Oo o Hindi sa mga tanong na itinanong dito. Noong ika-13 siglo CE, ang mga mongheng sina Albertus Magnus at Roger Bacon ay nagtayo ng mga nagsasalitang android nang walang karagdagang pag-unlad. Dumaing si Magnus na kanyang inaksaya ang 40 taon ng kanyang buhay nang si Tomas Aquino ay natakot ay winasak ito. Noong 1642, ang Renasimiyento ay nakasaksi ng imbensiyon ng kalkulador na mekanikal na isang kasangkapan na makapagsasagawa ng lahat ng apat na mga operasyon ng aritmetika nang hindi umaasa sa katalinuhan ng tao. Ang kalkulador na mekanikal ang ugat ng pagpapaunlad ng mga kompyuter sa dalawang magkahiwalay na mga paraan. Sa simula, sa pagtatangka ng pagpapaunlad ng mas makapangyarihan at mas mababagong mga kalkulador na ang kompyuter ay unang tineorya ni Charles Babbage at pagkatapos ay binuo. Ikalawa, ang pagpapaunlad ng mababang gastos na elektronikong kalkulador na kahalili ng mekanikal na kalkulador ay humantong sa pagpapaunld ng Intel ng unang pangkalakalan (commercial) na magagamit na microprosessor integrated circuit. 
 
Noong 1801, gumawa ng pagpapabuti si Joseph Marie Jacquard sa textile loom sa pamamagitan ng pagpapakilala ng isang sunod sunod na mga binutasang papel na kard bilang template na pumapayag sa loom na maghabi ng mga intrikadong pattern ng automatiko. Ang nagresultang Jacquard loom ang isang mahalagang hakbang sa pagkakabuo ng mga kompyuter ang paggamit ng mga binutasang kard upang maglarawan ng mga hinabing pattern ay makikita bilang unang, bagaman limitadong, anyo ng pagpoprograma. Ang pagsasanib ng automatikong kalkulasyon at pagpoprograma ang lumikha ng unang makikilalang mga kompyuter. Noong 1837, si Charles Babbage ang unang nagkonsepto ng isang buong mapoprogramang mekanikal na kompyuter, ang kanyang analitikal na enhin. Ang kakulangan ng mga pondo at walang kakayahan sa pagpipigil sa pagkalikot sa disenyo ay nangahulugang ang kasangkapan ay hindi kailanman nakumpleto. Gayunpaman, ang kanyang anak na si Henry Babbage ay kumumpleto ng isang pinasimpleng bersiyon ng computing unit ng analitikal na enhin noong 1888. Siya ay nagbigay ng isang matagumpay na demonstrasyon ng paggamit nito sa pagkukwento ng mga tabla noong 1906. Ang makinang ito ay ibinigay sa Science museum sa South Kensington noong 1910. Sa huli ng 1880, inimbento ni Herman Hollerith ang pagtatala ng datos sa isang mababasa ng makinang medium. Ang mas maagang paggamit ng mediang ito ay para sa kontrol at hindi para s adatos. Pagkatapos ng ilang simulang pagsubok ng papel na tape, siya ay gumamit ng mga binutasang kard. Ang tatlong mga imbensiyong ito ang pundasyon ng modernong industriya ng pagpoproseso ng impormasyon. Ang pangmalakihang automadong pagpoproseso ng mga datos ng mga binutasang kard ay isinagawa para sa censo ng Estados Unidos noong 1890 ng kompanya ni Hollerith na kalaunang naging core ng IBM. Sa huli ng ika-19 siglo ang isang bilang ng mga ideya at teknolohiya na kalaunang napatunayang magagamit sa pagsasakatuparan ng mga praktikal na kompyuter ay nagsimulang lumitaw: ang boolean algebra, ang vacuum tube (thermionic valve), mga binutasang kard at tape at teleprinter. Sa unang kahalahati ng ika-20 siglo, maraming mga pangangailangan ng pagkukwenta sa agham ay nakakita ng papalaking mga sopistikadong analong kompyuter na gumamit ng isang direktang mekanikal o elektrikal na modelo ng problema bilang basehan ng pagkukwenta. Gayunpaman, ang mga ito ay hindi mapoprograma at pangkalahatang nagkukulang ng bersatilidad at akurasiya ng mga modernong dihital na kompyuter. Si Alan Turing ang malawak na itinuturing na ama ng modernong agham pangkompyuter. Noong 1936, si Turing ay nagbigay ng isang impluwensiyang pormalisasyon ng konsepto ng algoritmo at pagkukwenta sa Turing machine na nagbibigay ng blueprint para sa elektronikong dihital na kompyuter.  Sa kanyang papel sa pagkakalikha ng modernong kompyuter, ang Time magazine ay nagpangalan sa kanya na isa sa 100 pinaka-impluwensiyal na tao ng ika-20 siglo: "Ang katotohanan ay nananatili na ang bawat isang pumipindot ng keyboard, nagbubukas ng isang spreadsheet o isang programang word processing ay gumagawa sa inkarnasyon ng isang Turing machine". Ang Atanasoff–Berry Computer (ABC) ang unang elektronikong dihital na kompyuter sa buong mundo bagaman hindi mapoprograma. Ito ay binuo noong 1937 sa Iowa State College nina John Atanasoff sa tulong ng kanyang estudyanteng si Clifford Berry. Ang makinang ito ay hindi mapoprograma dahil ito dinesenyo lamang para sa paglutas ng mga sistema ng linyar na ekwasyon. Ang kompyuter na ito ay gumamit ng parallel na komputasyon. Natagpuan ng isang desisyon ng koret noong 1973 sa isang alitan sa patent na ang patent para sa 1946 ENIAC computer ay hinango mula sa Atanasoff–Berry Computer.
 
 
Ang unang nakokontrol ng programang kompyuter ay inimbento ng Aleman na si Konrad Zuse na gumawa ng Z3 na isang elektromekanikal na kumkwentang makina noong 1941. Ang unang mapoprogramang elektronikong kompyuter ang Colossus na ginawa noong 1943 ni Tommy Flowers. Si George Stibitz ay internasyonal na kinikilala bilang ama ng modernong dihital na kompyuter. Habang nagtatrabaho sa Bell Labs noong 1937, inimbento ni Stibitz ang isang nakabatay sa relay na kalkulador na tinaguriang "Model K" (para sa "kitchen table" kung saan niya ito binuo) na ang unang gumamit ng mga binaryong sirkito upang magsagawa ng aritmetikong operasyon. Ang mga kalaunang modelo ay nagdagdag ng mas malaking sopistikasyon kabilang ang masalimuot na aritmetika at pagpoprograma. Ang ilang mga debeloper ng ENIAC sa pagkilala ng mga depekto nito ay nakaisip ng mas mababago at eleganteng disneyo na nakilalang "inimbak na programang arkitektura" o arkitekturang von Neumann. Ang disenyong ito ay unang pormal na inilarawan ni John von Neumann sa unang drapto ng isang ula tng EDVAC na ipinamahagi noong 1945. Ang isang bilang ng mga proyekto na bumuo ng mga kompyuter batay sa nakaimbak na programang arkitektura ay nagsimula sa mga panahong ito. Ang una ay nakumpleto noong 1948 sa University of Manchester sa England na Manchester Small-Scale Experimental Machine (SSEM or "Baby"). Ang Electronic Delay Storage Automatic Calculator (EDSAC) na nakumpleto pagkatapos ng isang tao pagkatapos ng SSEM sa Cambridge University ang unang praktikal, hindi eksperimental na implementasyon ng nakaimbak na programang disenyo at agad na ginamit para sa pagsasaliksik sa unibersidad. Sa sandaling pagkatapos nito, ang makinang orihinal na inilarawan ng papel ni von Neumann-EDVAC ay nakumpleto ngunit hindi nakakita ng buong paggamit para sa karagdagang dalawang taon. Ang halos ng lahat ng mga modernong komputer ay nag-iimplemente ng isang anyo ng nakaimbak na programang arkitektura na gumagawa ritong isang katangian na naglalarawan sa kompyuter. Bagaman ang mga teknolohiyang ginagamit sa mga kompyuter ngayon ay dramatikong nagbago simula nang unang elektronikong pangkalahatang paggamit ng mga kompyuter noong mga 1940, ang karamihan ay gumagamit pa rin ng arkitekturang von Neumann. Simula mga 1950, ang mga siyentipikong Soviet na sina Sergei Sobolev at Nikolay Brusentsov ay nagsagawa ng pagsasaliksik tungkol sa mga ternaryong kompyuter na pinapatakbo sa baseng tatlong sistema ng bilang na −1, 0, at 1 sa halip na sa konbensiyal na binaryong sistema ng bilang na ang karamihan ng mga kompyuter ay nakabatay. Kanilang dinisenyo ang Setun na isang gumaganang ternaryong kompyuter sa Moscow State University. Ang kasangkapan ay inilagay sa isang limitadong produktsiyon sa Unyong Sobyet ngunit napalitan ng mas karaniwang binaryong arkitektura. Ang mga kompyuter na gumagamit ng mga vacuum tube sa mga sangkapt nito ay ginamit sa buong mga 1950 ngunit noong mga 1960 ay malaking pinalitan ng nakabase sa transistor na mga kompyuter na mas maliit, mas mabilis, mas mura at nangangailangan ng kaunting elektrisidad at mas maasahan. Ang unang may transistor na kompyuter ay ipinakita sa University of Manchester noong 1953. Noong mga 1970, ang integrated circuit at kalaunang pagkakalikha ng mga mikroprosesor gaya ng Intel 4040 ay karagdagan nagpaliit ng sukat at gastos at karagdagang nagpabilis at pagiging maasahan ng mga kompyuter. Noong mga huli nang 1970, maraming produkto gaya ng mga video recorder ay naglalaman ng mga dedikadong mga kompyuter na tinatawag na mga microcontroller. Ang mga ito ay nagsimulang pumalit sa mga mekanikal na kontrol sa mga domestikong appliance gaya ng mga washing machine. Ang 1980s ay nakasaksi ng mga kompyuter na pambahay at ngayon ay personal na kompyuter.

Pagpoprograma ng kompyuter

Ang naglalarawang katangian ng mga modernong kompyuter na nagtatangi ng mga ito mula sa ibang mga makina ay ang kakayahan nitong maprograma o mabigyan ng mga instruksiyon o kautusan(programa ng kompyuter) na mapoproseso nito. Ang mga modernong kompyuter na nakabatay sa arkitekturang von Neumann ay kadalasang may machine code sa anyo ng imperatibong wikang pamprograma. Sa karamihan ng mga kaso, ang mga instruksiyon sa kompyuter ay simple. Halimbawa ay ang pagdaragdag ng isang bilang sa isa pang bilang, paglipat ng ilang datos mula sa isang lokasyon ng memorya sa iba pang lokasyon, magpadala ng mensahe sa ilang panlabas na kasangkapan at iba pa. Ang mga ito ay binabasa ng CPU sa memorya ng kompyuter at isinasagawa sa pagkakasunod na ibinigay ng programa. May mga espesyalisadong instruksiyong upang utusan ang kompyuter na tumalon ng pasulong o paurong sa isang lugar ng programa at isagawa ang programa mula doon. Ang mga ito ang mga instruksiyong pagtalon na maaaring isagawa ng batay sa isang kondisyon batay sa resulta ng nakarang kalkulasyon o panlabas na pangyayari. Maraming mga kompyuter ang direktang sumusuporta sa mga subrutina o punsiyon sa pamamagitan ng pagbibigay ng isang uri ng pagtalon na makakaalala ng lokasyong pinaglugdagan nito at isa pang instruksiyon upang bumalik sa instruksiyong kasunod ng instruksiyong pagtalon. Sa pagkukumpara, ang isang taong gumagamit ng isang kalkulador na pangbulsa ay maaaring magsagawa ng isang aritmetikong operasyon gaya ng pagdaragdag ng dalawang mga bilang gamit ang ilang mga pagpindot ng mga butones ng kalkulador. Gayunpaman, ang pagdaragdag ng lahat ng mga bilang mula sa 1 hanggang 1,000 ay mangangailangan ng libong pagpindot ng butones at maraming panahon upang isagawa ito na may katiyakan na makagawa ng pagkakamali sa pagpindot. Sa kabilang dako, ang isang kompyuter ay maaaring iprograma upang isagawa ang parehong tungkulin gamit ang ilan lamang mga simpleng instruksiyon. Halimbawa nito ang: 
      mov No. 0, sum     ; itakda ang suma sa 0
      mov No. 1, num     ; itakda ang num sa 1
loop: add num, sum    ; idagdag ang num to sum 
      add No. 1, num     ; magdagdag ng 1 sa num
      cmp num, #1000  ; ihambing ang num hanggang 1000
      ble loop        ; kung ang num <= 1000, bumalik sa 'loop' 
      halt            ; wakas ng programa. tumigil sa pagtakbo.

Mga paradigm na arkitektura ng kompyuter

Ang mga uri ng arkitektura ng kompyuter ay: Quantum computer vs Chemical computer, Scalar processor vs Vector processor, Non-Uniform Memory Access (NUMA) computers, Register machine vs Stack machine, Harvard architecture vs von Neumann architecture at Cellular architecture.