Programlama Temelleri Ders notları 1 Öğr.Gör. Hüseyin Bilal MACİT 2017 ì Bilgisayar nedir? ì Bilgisayar,kullanıcıdanaldığıverilerlemantıksalvearitmetiksel işlemleriyapan;yaptığıişlemlerinsonucunusaklayabilen; sakladığıbilgilereistenildiğindeulaşılabilenelektronikbir makinedir. ì Öncedenbelleğineyüklenmişbiryazılımilekendisineverilen komutlaragöre,verilenverileriişleyereksonuçlarüretir. ì Buişlemleriinsandandahahızlıyapabildiğiiçinbilgisayar kullanımıhızlayaygınlaşmıştır. ì Günümüzbilgisayarları,milyarlarcakarmaşıkişlemisaniyeler içindeyapabilecekkadarhızlıdır. Bilgisayarın tarihçesi ì Bilgisayarıngelişiminin,günümüzden5000yılönceabaküsün bulunmasıilebaşladığısöylenebilir.İnsanoğluilkdefaabaküs kullanarakbiraraçyardımıilesayılarısaymayabaşlamıştır. ì 1642yılındaBlaise Pascal,vergi toplayıcısıolanbabasınayardım edebilmekiçinilkbasithesap makinesiniicatetmiştir.Üzerinde sayılarolanbubasitmakine, hesapmakinelerininatasısayılır. Pascal’ın geliştirdiğibuhesap makinesininadıPascaline’dır. ì Pascaline Bilgisayarın tarihçesi ì 1673yılınagelindiğindeAlmanGottfried Wilhelmvon Leibniz,Pascaline’ı geliştirerekçarpmaişlemideyapabilen birmakinehalinegetirmiştir ì Leibniz ì 1820yılındaFransızCharlesXavier ThomasdeColmar,dört işlemyapabilenbirhesapmakinesiicatetmiştir.Colmar’ın icat ettiğimakineninüzerindeçalışılarak‘Arithometer’adıverilen mekanikhesapmakinelerikullanılmayabaşlanmıştır. Bilgisayarın tarihçesi ì Günümüzdeanladığımızişleviylebilgisayar mantığınıntemeliniilkolarakİngilizmatematik profesörüCharlesBabbage ortayaatmıştır. 1832yılındaBabbage,Difference Engine’adını verdiğidiferansiyeldenklemçözümüyapabilen makineyigeliştirmeyidüşünmüştür.Lokomotif büyüklüğündevebuharlaçalışanbumakineyi, programlarısaklayabileceğivehesaplamaları yapıpçıktıalabileceğibirdüzenekteçalıştırmayı ì Difference Engine tasarlamıştır.10yılsürençalışmalarınsonunda buülküsüneulaşamamıştır,ancakozaman ì (Babbage) düşündüğüyapıbugünbizimkullandığımız bilgisayarlarınişlevinetıpatıpbenzemektedir. Bilgisayarın tarihçesi ì 1801yılındaJoseph-MarieJacquard,delikli tahtayı(punch board)tasarlayarakeldeki verilerinbutahtayabasılıpsaklanması fikriniortayaatmıştır.Bufikirden yararlanarakBabbage,‘AnalitikMakine’adı verilengenelamaçlıkullanımıolabilecekbir makinegeliştirmiştir. ì 1890yılında,AmerikalımucitHerman ì Tabulator (Hollerith) Hollerith,Jacquard’ın deliklitahtabuluşunu dahahızlıbaskıyapabilenbirmakinede geliştiripkullanmıştır Bilgisayarın tarihçesi ì Tabulator’denenbumakineileilkişolarak AmerikaBirleşikDevletleri’ndenüfussayımı yapmayıplanlamıştır.Eskiyöntemleregöre nüfussayımı10yıldatamamlanırken, Hollerith’in buluşuilesayım6haftada bitmiştir. ì Hollerith,önce‘Tabulate Machine ì Tabulator (Hollerith) Company’,dahasonra1924yılında ‘InternationalBusinessMachines’(IBM)adı altındabirfirmakurarakkendideliklikart okuyucusunuişdünyasıyladatanıştırmıştır. 1. nesil bilgisayarlar (1945 - 1956) ì Budönem1945-1956yıllarıarasınıkapsar.Birincinesil bilgisayarlarıdiğerdönemlerdenayıranözellikler,vakum tüplerininbulunmasıilevanaveteldevrelerdenoluşmasıdır.Bu döneminbilgisayarlarındaelektrikakımı,vakumtüpleri aracılığıyladenetlenmektedir,verilerisaklayabilmekiçinde manyetikdavullarbulunmaktadır. ì Bubilgisayarlarözelişlemleryapmalarıiçinüretildiklerinden, kullanımalanlarıdasadecebuözelişlemlerinyapılmasıylasınırlı kalmıştırveçalışmalarıçokyavaştır. 2. nesil bilgisayarlar (1956 - 1964) ì 948yılındatransistörün icadıilebilgisayardünyasında ilerlemelermüthişbirivmekazanmıştır.Transistörler,ilkdefa 1956yılındabilgisayarlardakullanılmayabaşlanmıştır.Bu döneminenbelirginbuluşu,transistörlerin vakumtüplerinin yerinialarakmakineboyutlarınınküçülmesini,birincinesil makineleregöredahahızlıçalışmasınısağlamasıvemakine dilininyerineprogramlamadillerinegeçilmişolmasıdır.Makine dilindekullanılan‘Assembly’yerine,uzunvezorolanikili (binary)kodlarıikincinesilbilgisayarlarlabirlikteprogramlama dilinedönüştürülmüştür.Böylecebirincinesildekilergibiher amaçiçinmakineüretmekyerine,heramaçiçinprogram yazılmayabaşlanmıştır.‘COBOL’ve‘Fortran’dilleribudönemde geliştirilmiştir. 2. nesil bilgisayarlar (1956 - 1964) ì 1948yılındatransistörün icadıilebilgisayardünyasındailerlemeler müthişbirivmekazanmıştır.Transistörler,ilkdefa1956yılında bilgisayarlardakullanılmayabaşlanmıştır.Budöneminenbelirgin buluşu,transistörlerinvakumtüplerininyerinialarakmakine boyutlarınınküçülmesini,birincinesilmakineleregöredahahızlı çalışmasınısağlamasıvemakinedilininyerineprogramlamadillerine geçilmişolmasıdır. Budönemdebilgisayarlarişdünyasınada girmiştir.Malibilgilerinişlendiğibilgisayarlar veprogramlarüretilmiştir.Budönemde Heath firmasıelektronikanalog bilgisayarı, IBMise‘IBM1401’adıylailkendüstriyel bilgisayarıüretmiştir. Analog Bilgisayar(Heath) 3. nesil bilgisayarlar (1964 - 1970) ì Vakumtüplerininyerinialantransistörler,bilgisayartarihinde çokönemlibirbuluşolmuştur.Ancakbilgisayarlarelektronik devrelerindekiçabukısınmadandolayıuzunsüre çalıştırılamamaktadır.1958yılında,Texas Instruments mühendislerindenJack Kilby,bütünleşmişdevre(IC– Integrated Circuit)buluşuylaısınmasorununuçözümlemiştir.IC, üçelektronikparçanınküçüksilikondisklerdebirleştirilmesiyle oluşanbirdevredir.Bilimadamlarıtekbiryonganınüzerineçok dahafazlatransistör ekleyerekyarıiletkenleri(semi-conductor) icatederler.Sonuçtayongalarıniçerisinenekadarçoktransistör eklenirse,bilgisayarlarınboyutudaokadarküçülmektedir.Bu dönemedamgasınıvuranikincigelişmede,bilgisayarlariçin ‘işletimsistemi’geliştirilerekçoksayıda,farklıprogramlar çalıştırılabilmesidir. 4. nesil bilgisayarlar (1970 - günümüz) ì Dördüncünesilbilgisayarlarıdiğerdönemlerdenayıran özellik,milyonlarcatransistörün tekbirbütünleşik devreyongası(Integrated CircuitChip)üzerinde toplanarak,mikroişlemcilerinbulunmasıvekarmaşık programlamadillerinegeçilmesidir.IBM,1981yılında, insanlarıilkdefakişiselbilgisayarlar(PC– Personal ì PC(IBM) Computer)iletanıştırmıştır.Butarihtenitibaren bilgisayarlarbüyükendüstriyelveaskeriamaçlı çalışmalarındışında;evlere,okullaraveişyerlerine girmiştir.Bilgisayarlarınbugelişimi,sonrakiyıllarda masaüstüvedizüstübilgisayarlarolarakgündelik hayatımızınayrılmazbirparçasıolmalarınısağlamıştır. 5. nesil bilgisayarlar (günümüz - gelecek) ì Beşincinesilbilgisayarlarıngünümüzedamgasınıvuran gelişmeleri,paralelişleme(parallel-processing)vebüyükölçekli bütünleşmişdevrelerinbulunmasıdır.Bugelişmeilemilyonlarca transistör tekbiryongadatoplanıp,milyarlarcaişlemisaliseile ifadeedilebilecekzamandilimlerindegerçekleştirebilmektedir. İnsanoğlununhayalgücüneparalelbuluşlargerçekleştirmesinin sonuolmadığından,budöneminsonubelirtilememektedir. 5. nesil bilgisayarlar (günümüz - gelecek) CPU Yıl Transistörsayısı Intel4004 1971 2,300 Intel8086 1978 29,000 Intel80386 1985 275,000 IntelPentium 1993 3,100,000 Intel PentiumIII 1999 9,500,000 IntelCore 2Duo 2006 291,000,000 AMDK10Quad Core 2007 463,000,000 IntelCore i7 2008 731,000,000 Intel Xeon 8Core NehalemEX 2010 2,300,000,000 Apple A10 2016 3,300,000,000 5. nesil bilgisayarlar (günümüz - gelecek) ì Transistörler şuhaliilebirvirüs’ün1000’de1boyutundavebiraz dahaküçültülürleriseelektronudurduramazlar.Dolayısıyla bit’leriüretemezveveriişleyemezler.Artıkbilgisayarların değişmesigerekli. ì Bunedenle2012yılındaQuantum mekaniğiileçalışanilk bilgisayarüretildi.İlkbaştadevasaolanbubilgisayarlar, günümüzdeyavaşyavaşküçültülmeyebaşladı.0ve1dediğimiz bitleryerine,Qubitlerle çalışanQuantum bilgisayarları,şimdilik sadeceşifreçözmeişlemleriiçinkullanılıyor.Geliştirilmesi normalbilgisayarlaragöreçokdahazorolanbubilgisayarların, 2015yılındaDelft Üniversitesi’nde yapılanbirçalışmaileışık hızındandahahızlıişlemyapabildiğiispatlandı. Yazılım nedir? ì Elektronikbircihazın,istenilenbirişiyapmasıiçinbirprogramlamadili ilehazırlanmışkodkümesine“program”denir. ì Belirliişlerinyapılmasıiçinkoordineçalışanprogramlarıntümünede “yazılım”denir.Yazılımlar,sistemveuygulamayazılımlarıadıaltında incelenir. Sistem yazılımları ì Bilgisayarınkullanıcıileetkileşiminisağlayanyazılımlardır. ì Bilgisayarkullanımıiçingereklianafonksiyonlarısağlarve bilgisayardonanımınavesisteminyürütülmesineyardımcıolur. ì İşletimsistemleri ì Aygıtsürücüleri ì Derleyiciler ì BIOS Uygulama yazılımları ì Birişletimsistemiüzerindeçalışan,belirliişlemleri geçekleştirmeküzeregeliştirilmişyazılımlardır. ì ÖrneğinWindowsişletimsistemindeçalışmaküzeregeliştirilmiş biryazılım,MACOSişletimsistemiüzerindeçalışmaz. ì Uygulamayazılımları,donanımladoğrudaniletişimegeçmez, işletimsisteminiaracıolarakkullanırlar. Uygulama yazılımları ì Kelimeişlemyazılımları(Wordpad,MSWord,OpenOffice Writer,Adobe Readervb.) ì Elektroniktablo-hesapyazılımları(Excel,Numbers vb.) ì Veritabanı yazılımları(MSAccess,Oracle,Paradox,SQLServer vb.) ì Tümleşikpaketyazılımlar(MSOfficevb.) ì Grafikyazılımları(CorelDraw,Photoshop,Autocad vb.) ì İnternettarayıcıyazılımları(GoogleChrome,MSEdge,Mozilla Firefox,Safarivb.) Uygulama yazılımları ì İletişimyazılımları(Messenger,Whatsapp,BİPvb.) ì Zararlıyazılımlar(Virüs,truva atı,solucanvb.) ì Oyun-eğlenceyazılımları(PC,PS,Mobiltelefonvetablet oyunlarıvb.) ì Casusyazılımlar(Keylogger vb.) ì Güvenlikyazılımları(Antivirüs,Firewallvb.) ì Programgeliştirmeyazılımları(VisualStudio,Delphi,JBuilder vb.)