Bilgisayar Ve Programlamaya Giriş Dersi 1. Ünite Özet
Bilgisayar Ve Programlamanın Gelişimi
- Özet
- Sorularla Öğrenelim
Bilgisayarların Gelişimi ve Tarihçesi
Gündelik hayatın vazgeçilmez bir parçası olan bilgisayarlar, aritmetiksel ve mantıksal işlemler yapabilen, programlanabilir elektronik cihazlardır. Art arda veya es zamanlı olarak birçok işlemi hızlı ve kolay bir şekilde yapabilen bilgisayarlar, insan hayatını kolaylaştıran ve değiştiren en önemli teknolojik buluşlardandır. Tarihte yapılmış ilk bilgisayar, 1946 yılında Amerika Birleşik Devletleri’nde açıklanmış, ENIAC (Elektronik Sayısal Entegreli Hesaplayıcı) adlı makinedir. Modern bilgisayarların tarihi beş ana dönem altında incelenir:
- Birinci nesil bilgisayarlar (1940-1956): Vakum tüplerinin kullanıldığı ENIAC benzeri çok büyük cihazlardır.
- İkinci nesil bilgisayarlar (1956-1963): Transistörlere geçişin yapıldığı bilgisayarlardır.
- Üçüncü nesil bilgisayarlar (1964-1971): Tümleşik devreler kullanılan ve kendi aralarında haberleşebilen bilgisayarlardır.
- Dördüncü nesil bilgisayarlar (1971 - günümüz): Günümüzde kullanılan bilgisayarların da dâhil olduğu modern bilgisayarlardır.
- Beşinci nesil bilgisayarlar (günümüz - yakın gelecek): Yapay zekâ ile donatılmış, gelişim süreci devam eden bilgisayarlardır.
Birinci Nesil: Vakum Tüpleri Günümüzde kullanılan modern bilgisayarların temeli 1940’lı yıllarda atılmıştır. Lamba olarak da adlandırılan vakum tüplerinin kullanımına dayanan bu bilgisayarlar, devasa büyüklükte yer kaplayan elektronik cihazlardır. Birinci nesil bilgisayarlarda elektronik sistemi olarak vakum tüpleri, bellek olarak da manyetik silindirler kullanılmıştır. Bu bilgisayarların programlanmasında, bilgisayar tarafından algılanabilen en düşük seviye dil olan makine dili kullanılmıştır. Birinci nesil bilgisayarların en önemli temsilcisi ENIAC adlı makinedir. Elektrikle çalışan ve elektronik veri işlemesine sahip ilk bilgisayar olan ENIAC, İkinci Dünya Savası sırasında duyulan gereksinimler nedeniyle, Amerika Birleşik Devletleri tarafından üretilmiştir. Bu dönemde geliştirilen bilgisayarlardaki en önemli problem, fiziksel olarak çok fazla yer kaplamalarıydı.
İkinci Nesil: Transistörler Transistör, elektrik akımını kontrol edebilen, gerektiğinde anahtar olarak kullanılabilen yarı iletken bir elektronik devre elemanıdır. 1947 yılında, dünyanın önde gelen telefon şirketlerinden Bell laboratuvarlarında, Amerikalı fizikçiler John Bardeen, Walter Brattain ve William Shockley tarafından icat edilmiştir. Vakum tüplerine göre çok daha küçük, ekonomik, hızlı ve güvenilir olan transistörler, radyo, televizyon, telefon ve bilgisayar gibi araçların daha kolay üretilmesine olanak sağlamıştır. Vakum tüpleri yerine transistör kullanımına geçilen bu bilgisayarlarda, fiziksel boyut küçülmüş ve elektrik tüketimi azalmıştır. Bu dönemde makine dilinden çevirici dil (assembly language) kullanımına geçilerek, programların daha kolay yazılması ve insanlar tarafından daha rahat anlaşılması sağlanmıştır. Üst düzey programlama dillerinin temelleri atılmış, COBOL ve FORTRAN programlama dillerinin ilk sürümleri oluşturulmuştur.
Üçüncü Nesil: Tümleşik Devreler Bilgisayarların elektronik donanımında transistörlerin kullanılması bilgisayar teknolojisine seviye atlatırken, bazı problemleri de beraberinde getirmiştir. Kullanılan transistör sayısının fazlalığı sebebiyle, devreler karmaşık hâle gelmiş ve transistör kablolarını birbirine bağlamak zorlaşmıştır. Fiziksel kısıtlardan dolayı transistörlerin ve devrelerin küçülmesi olanaksız olmuştur. Bu problemler, 1958 yılında Jack Kilby tarafından geliştirilen tümleşik devrenin transistörlerin yerini almasıyla asılmış, üçüncü nesil bilgisayarlarda tümleşik devreler kullanılmıştır. Yarı iletken silikondan yapılan tümleşik devreler ile birlikte, transistörlerin fiziksel olarak küçültülmesi sağlanmış ve bir devre üzerine binlerce transistör yerleştirilebilmiştir. Bu gelişmenin sayesinde daha küçük ve hızlı bilgisayarlar üretilmiş ve üretim maliyetleri düşürülmüştür.
Dördüncü Nesil: Mikroişlemciler Günümüzde kullanılan modern bilgisayarları da kapsayan dördüncü nesil bilgisayar dönemi, mikroişlemcilerin üretilmesiyle başlamıştır. Genel amaçlı ilk mikroişlemci, Amerikalı bilim adamı Ted Hoff tarafından, 1971 yılında üretilen, yaklaşık 2300 transistöre sahip, Intel 4004 adlı işlemcidir. Mikroişlemcilerin geliştirilmesi, daha hızlı, daha küçük ve daha ucuz bilgisayarların yapılmasına imkân vermiştir. Intel firmasının kurucularından Gordon Moore, 1965 yılında yayınlanan makalesinde tümleşik devreler içindeki transistör sayısının her yıl iki katına çıkacağını öne sürmüştür. Bu öngörü Moore Yasası olarak adlandırılmıştır.
Beşinci Nesil: Yapay Zekâ Yakın gelecekte uygulama ve kullanım alanlarının yaygınlaşacağı besinci nesil bilgisayarlar, yapay zekâ teknolojileri ile donatılmaktadır. Yapay Zekâ, bilgisayarların ve makinelerin karmaşık problemlere insanlar gibi çözümler üretmesini sağlayan bilim dalıdır.
Bilgisayar Mimarisi
Bilgisayarın temel işlevsel yapısına ve tasarımına bilgisayar mimarisi adı verilir. Bilgisayar sisteminde yer alan bileşenlerin tasarım ve düzenlenme sekli, bilgisayar mimarisinde yer alır. Bazı farklılıklar olsa da modern bilgisayarlar aynı mimari yapıyı esas alır. Bu yapıya “Von Neumann Modeli” adı verilmiştir. Von Neumann Modeli, modern bilgisayarların yapısını oluşturan mimari modeldir. İşlemci ve belleğin birbirinden ayrıldığı bu modelde, bilgisayarı oluşturan üç ana bilesen öngörülmüştür:
- Girdi/Çıktı Birimleri: Kullanıcı ile bilgisayar arasındaki iletişimi sağlayan birimlerdir.
- Merkezi İşlem Birimi: Verilerin işlenmesinden sorumlu bileşendir.
- Bellek: Bilgisayarın kullanacağı veri deposudur.
İşlemci ve bellek arasındaki veri transfer hızı, bellek kapasitesine göre çok küçüktür. Bu transfer hızı, modern makinelerin işlemci hızıyla kıyaslandığında da oldukça yavaş kalmaktadır. Ortaya çıkan bu gecikmeden dolayı, işlemci bellekten alınacak veya belleğe gönderilecek veriyi beklemek durumunda kalır. İşlemci ve bellek arasındaki veri transferi dolayısıyla yaşanan bu kısıtlamaya Von Neumann Engeli adı verilmiştir. Von Neumann engelini ortadan kaldırmak veya etkisini azaltmak için birçok çalışma yapılmıştır. Bilgisayar ve işlemci mimarisinde değişikliklere yol açan çeşitli yöntemler geliştirilmiştir. Bu yöntemlerden başlıcaları:
- Ön bellek kullanımı (caching)
- Paralel işleme (parallel processing)
- Çoklu işleme (multithreading)
- Küme halinde işleme (pipelining)
Bilgisayarda Donanım ve Yazılım
Bilgisayarlar, donanım (hardware) ve yazılım (software) adı verilen iki bölümden meydana gelir. Bir bilgisayar sistemini işletebilmek için, bu iki temel unsura ihtiyaç vardır.
Donanım:
Bilgisayarın fiziksel ve elektronik yapısını oluşturan bileşenlere donanım adı verilir. Modern bilgisayarları oluşturan beş temel donanım bileşeni vardır:
- Merkezi İşlem Birimi (CPU - Central Processing Unit)
- Ana Bellek (Main Memory)
- İkincil Depolama Aygıtları (Secondary Storage Devices)
- Girdi Aygıtları (Input Devices)
- Çıktı Aygıtları (Output Devices)
Merkezi İşlem Birimi: Bilgisayarda programların çalışmasını ve işlemlerin yapılmasını sağlayan temel bilesen merkezi işlem birimidir. Bilgisayarın beyni olarak da kabul edilen merkezi işlem birimi, bilgisayarın en önemli ve karmaşık parçasıdır. Modern bilgisayarlarda, merkezi işlem bir imi olarak mikroişlemciler görev yapmaktadır. Mikroişlemcilerin üç ana parçası vardır:
• Kontrol Birimi (CU - Control Unit)
• Aritmetik ve Mantık Birimi (ALU – Arithmetic and Logic Unit)
• Yazmaçlar (Registers)
Ana Bellek: Bilgisayarın çalışma esnasında kullandığı alandır. Bilgisayarda bir program yürütülürken, programın kendisi ve programla ilgili veri ana bellekte tutulur. Ana bellek, çoğunlukla rastgele erişimli bellek (RAM - Random Access Memory) olarak da adlandırılır.
İkinci Depolama Aygıtları: Yardımcı bellek olarak da tanımlanan ikincil bellek, verinin uzun süre saklanmasına imkân sağlayan bellek türüdür. Bilgisayar kapatıldığında veya elektrik bağlantısı olmadığında ikincil bellekteki bilgilerde herhangi bir kayıp yaşanmaz. İkincil depolama aygıtlarının en sık kullanılan çeşidi sabit disklerdir. Genellikle tüm bilgisayarlarda gömülü bir sabit disk bulunmaktadır. Günümüzde sabit disklerin kapasitesi TB (Terabyte) seviyesine kadar çıkmıştır. Sıklıkla kullanılan diger depolama aygıtları harici disk, CD (compact disc), DVD (digital versatile disc), manyetik teyp ve USB bellek olarak listelenebilir.
Girdi Aygıtları: Kullanıcılardan veya farklı cihazlardan bilgisayara gelen her türlü veriye girdi adı verilir. Modern bilgisayarlarda en sık kullanılan girdi araçları klavye, fare, mikrofon, dijital kamera, tarayıcı ve barkod okuyucudur.
Çıktı Aygıtları: Bilgisayarın kullanıcılar veya farklı cihazlar için oluşturduğu her türlü veriye çıktı adı verilir. Modern bilgisayarlarda en sık kullanılan çıktı araçları monitör, yazıcı, hoparlör, kulaklık ve projektördür.
Yazılım:
Bilgisayar sistemini oluşturan donanım bileşenlerini yönetmek ve kullanıcıların işlemlerini gerçekleştirmek için gerekli olan komutlar topluluğuna yazılım denir. Bir bilgisayarın çalışabilmesi için yazılıma ihtiyacı vardır. Bilgisayarı açtığımız andan kapatana kadar geçen sürede yapılan her işlem, bir yazılım kontrolü altında gerçekleşir. Yazılım, sistem yazılımları ve uygulama yazılımları olmak üzere iki ana kategoride incelenir. Sistem yazılımları, bilgisayar kullanımı için gerekli ana fonksiyonları sağlayan, bilgisayar donanımına ve sistemin yürütülmesine yardımcı olan yazılımlardır. Sistem yazılımları üç gruba ayrılır:
- İşletim Sistemleri
- Hizmet Programları
- Yazılım Geliştirme Araçları
Uygulama yazılımları, bilgisayarları günlük hayatımızın bir parçası yapan, bizlere birçok alanda çeşitli işlemler yapma olanağı veren yazılımlardır.
Programlama Dilleri
Yazılımcıların belirli bir algoritmayı ifade etmek için kullandığı, yapılacak işlemi bilgisayara anlatmaya yarayan standart gösterimlere programlama dili denir. Bir programlama dilinin içerdiği kelimeler, kurallar ve talimatlar sayesinde bilgisayarlara özel işlemler yaptırılabilmektedir. Günümüzde popüler olarak kullanılan programlama dilleri C, C++, Python, Java, PHP, JavaScript ve Ruby olarak örneklendirilebilir.
Programlama dilleri yazılım geliştirmek için kullanılan araçlardır. Bir programlama dilinin faydalı ve başarılı sayılabilmesi için yazılımda güvenilirlik, sürdürülebilirlik ve verimlilik sağlanabilmelidir. Yazılımda güvenilirlik sağlayabilmek için, bir programlama dilinin aşağıdaki niteliklere sahip olması gerekmektedir:
- Yazılabilirlik (Writability)
- Okunabilirlik (Readability)
- Sadelik (Simplicity)
- Güvenlik (Safety)
- Sağlamlık (Robustness)
Yazılımda sürdürülebilirlik, bir yazılımın değişen istek ve ihtiyaçlara cevap verebilme yeteneğidir. Bir yazılımın sürdürülebilir olması için, yazılımın kaynak kodunun kolay ve güvenli bir şekilde değiştirilebilmesi gerekir.
Verimlilik, tüm yazılım sistemleri için önemli bir gereksinimdir. Bir yazılımın verimliliğini belirleyen ölçütlerden başlıcaları yazılımın çalışması için gereken bellek ve işlem hızıdır.
Programlama tarihinde, farklı amaçlara hizmet eden yüzlerce dil kullanılmıştır. Programlama dillerinin tarihçesini göz önüne alarak, programlama dillerini üç seviyede sınıflandırmak mümkündür:
- Makine Seviyesi
- Çevirici Seviyesi
- Yüksek Seviye
Farklı seviyelerdeki programlama dilleri, birbirlerine karsı avantajlar veya dezavantajlar gösterebilir.