Kompyuter

Ang kompyuter, ordenador o panuos (Ingles: computer) ay isang kagamitang elektronikon at digital (tambilangan) kung saan dinisenyo upang kusang magkompyut ng mga pangkat ng aritmetika at operasyong lohiko. Ang mga modernong kompyuter ay nakakapagpagana ng mga generikong operasyon kung saan mas malaki ang sakop ng kanyang mga nakokompyut na programa kumpara sa ordinaryong kompyuter. Ang kompyuter sistems naman ay ang kumakatawan sa kompyuter na mayroong pinagsama-samang hardware, sistemang operasyon, at mga panlabas na kagamitan. Tinatawag din ang kompyuter sistems bilang kompyuter network at kompyuter klaster na pinagsama-sama upang mapagana. Ang dadalahing kompyuter o dadalahing panuos (Ingles: laptop) ay isang maliit na kompyuter na pansarili (PC) na maaaring bitbitin at may isang tabing o "screen" at talapindutang alpanumeriko. Dahil ang isang sunod sunod na mga operasyon ay maaaring handang mabago, ang kompyuter ay makalulutas ng higit sa isang uri ng problema. Sa kumbensyon, ang isang kompyuter ay binubuo ng hindi bababa sa isang elementong nagpoproseso na tipikal ay isang CPU at isang anyo ng memorya. Ang CPU ay naglalaman ng dalawang tipikal na mga bahagi na arithmetic logic unit (ALU) na nagsasagawa ng mga operasyong aritmetiko at lohikal at control unit (CU) na kumukha ng mga instruksyon sa memorya at nagsasalin at nagsasagawa ng mga ito na tumatawag sa ALU kung kinakailangan. Ang unang elektronikong dihital na mga kompyuter ay pinaunlad sa pagitan ng 1940 at 1945 sa United Kingdom at Estados Unidos. Ang mga sukat nito ay orihinal na kasinglaki ng isang malaking kwarto at kumokonsumo ng labis na elektrisidad gaya ng ilang mga daan-daang modernong personal na kompyuter(mga PC).  Sa panahong ito, ang mga mekanikal na analogong kompyuter ay ginagamit para sa mga aplikasyong pangmilitar.  

Ang mga modernong kompyuter na nakabatay sa mga integrated circuit ay milyon hanggang bilyong mas may kakayahan sa mga sinaunang kompyuter at umookupa ng isang praksyon ng espasyong kailangan ng mga ito. Ang mga simpleng kompyuter ay sapat na maliit upang magkasya sa mga mobile device at ang mga kompyuter na mobile ay maaaring paandarin ng isang maliit na baterya. Ang mga personal na kompyuter sa iba't ibang mga anyo nito ay mga ikono ng Panahon ng Impormasyon at ang ito ang mga naiisip ng mga tao na tinatawag na "kompyuter". Gayunpaman, ang mga embedded computer na matatagpuan sa maraming mga kasangkapan mula sa mga mp3 player hanggang sa mga sasakyang panghimpapawid na pandigma at mula sa mga laruan hanggang sa mga industrial na robot ang pinakamarami. Karaniwang nagagamit na rin ang mga modernong kompyuter sa pagnenegosyo, pagpapaganda ng larawan, paglikha ng musiko, at pakikipag-ugnayan. Ang agham pangkompyuter ang disiplina na nag-aaral ng teorya, disenyo, at paglalapat ng mga 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 bahagi ng kompyuter

Ang isang pangkalahatang paggamit na kompyuter ay may apat na pangunahing mga bahagi: ang arithmetic logic unit (ALU), control unit, memorya ng kompyuter at mga kasangkapang pang-input at pang-output(I/O). Ang mga bahaging ito ay pinag-uugnay ng mga bus ng kompyuter na kadalasan ay gawa sa mga pangkat ng mga kawad. Sa loob ng bawat mga bahaging ito ay mga libo libo hanggang trilyong maliliit na mga sirkitong elektrikal na maaaring isara o buksan sa pamamagitan ng isang elektronikong switch. Ang bawat sirkito ay kumakatawan sa isang bit ng impormasyon upang kapag ang sirkito ay nakabukas, ito ay kumakatawan sa "1" at kapag nakasara ay kumakatawan sa "0". Ang mga sirkito ay nakaayos sa mga bakod na lohika upang ang isa o higit pang mga sirkito ay makakontrol sa estado ng isa o higit pang ibang mga sirktio. Ang control unit, ALU, mga register, at basic I/O (at kadalasan ay iba pang mga hardwer na malapit na kaugnay n gmga ito) ay magkakasamang tinatawag na central processing unit (CPU). Ang mga maagang CPU ay binubuo ng maraming mga magkakahiwalay na bahagi ngunit simula gitna ng 1970, ang mga CPU ay tipikal na binubuo sa isang integradong sirkito na tinatawag na microprocessor. Ang mahalagang bahagi na karaniwan sa lahat ng mga CPU ang counter ng programa na isang espesyal na selula ng memorya (isang register) na sumusubaybay sa aling lokasyon sa memorya na ang susunod na instruksiyon ay babasahin. Ang ALU ay may kakayahan na magsagawa ng dalawang mga klase ng operasyon: ang aritmetika na maaaring kabilangan ng adisyon, subtraksiyon, multiplikasyon, dibisyon, punsiyong trigonometriko; at ang mga operasyong pang-lohika na kinasasangkutan ng lohikang boolean gaya ng AND, OR, XOR, at NOT. Ang mga superskalar na kompyuter ay maaaring maglaman ng maraming mga ALU na pumapayag sa mga ito na magproseso ng ilang mga instruksiyon ng sabay-sabay. Ang mga grapikong prosesor at kompyuter na may mga katangiang SIMD at MIMD ay kadalasang naglalaman ng mga ALU na maaaring magsagawa ng aritmetika sa mga bektor at matriks. Ang memorya ng kompyuter ay maaaring makita bilang isang talaan ng mga selula na may mga bilang na maaaring paglagyan o basahin. Ang bawat selula ay may bilang na adress at maaaring mag-imbak ng isang bilang. Ang kompyuter ay maaaring utusan na maglagay ng bilang na 123 sa selulang may bilang 1357 o idagdag ang bilang na nasa selulang 1357 sa bilang na nasa selulang 2468 at ilagay ang sagot sa selulang 1595. Sa halos lahat ng mga modernong kompyuter, ang bawat selulang memorya ay itinakdang mag-imbak ng mga binaryong bilang sa mga pangkat ng 8 bit na tinatawag na byte. Ang bawat byte ay may kakayahang kumakatawan ng 256 iba't ibang mga bilang (2^8 = 256) na mula 0 hanggang 255 o −128 hanggang +127. Upang mag-imbak ng malalaking mga bilang, ang ilang magkakasunod na mga byte ay maaaring gamitin na tipikal na 2, 4 o 8. Kapag ang mga negatibong bilang ay kailangan, ang mga ito ay karaniwang iniimbak sa dalawahang komplementeng notasyon. Ang CPU ay naglalaman ng isang espesyal na hanay ng mga selulang memorya na tinatawag na mga register na maaaring basahin at sulatan ng higit na mas mabilis kesa sa pangunahing areang memorya. Mayroong tipikal na sa pagitan ng dalawa at isang daang mga register depende sa uri ng CPU. Ang mga register ay ginagamit para sa mas kadalasang kinakailangan na mga item ng datos upang maiwasan ang paglapit sa pangunahing memorya sa bawat panahong kailangan. Habang ang datos ay patuloy na pinagtatrabahuhan o pinoproseso, ang pagbabawas ng pangangailangan sa paglapit sa pangunahing memorya na kadalasan ay mabagal kumpara sa ALU at mga control unit ay malaking nagpapataas ng bilis ng kompyuter. Napapabilis din ng graphics processing unit (GPU) ang kompyuter partikular sa gamit nito sa larong tatlong dimensiyunal (3D). Nagagamit din ang GPU sa iba pang gawain na nangangailangan ng mabilis na pagproseso. Ang pangunahing memorya ng kompyuter ay nasa dalawang mga uri: random-access memory o RAM at read-only memory o ROM. Ang RAM ay mababasa at masusulatan sa anumang panahon na inuutos ng CPU ngunit ang ROM ay paunang nilagyan ng datos at sopwer na hindi kailanman nagbabago kaya ito ay mababasa lamang ng CPU. Ang ROM ay tipikal na ginagamit upang imbakan o lagyan ng mga simulang pagsisimula ng mga instruksiyon. Sa pangkalahatang, ang mga nilalaman ng RAM ay nabubura kapag ang kompyuter ay pinatayan ng elektrisidad ngunit ang ROM ay nagpapanatili ay nagpapanatili ng datos nito nang matagal na panahon. Sa isang PC, ang ROM ay naglalaman ng isang espesyalisadong programang tinatawag na BIOS na kumokontrol sa paglalagay ng operating system ng kompyuter mula sa hard disk drive tungo sa RAM kapag ang kompyuter ay binuksan o nireset. Ang I/O ang paraan ng pakikipagpalitan ng kompyuter ng impormasyon sa panlabas na daigdig nito. Ang mga kasangkapan na nagbibigay ng input o output ay tinatawag na mga peripheral na kinabibilangan ng keyboard, mouse at headset, at mga kasangkapang output gaya ng display at printer. Ang mga hard disk drive, floppy disk drive at optical disc ay nagsisilbi bilang parehong mga kasangkapang input at output. Ang networking ng kompyuter ay isa pang anyo ng I/O.

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.

Mga sanggunian 

Agham pangkompyuter
Kompyuter
Mga gamit pang-kompyuter