Programlamaya Giriş

0

Yazılım Nedir ?

Yazılım (software) programlama ve programlamayla ilgili konuların geneline verilen isimdir. Yazılım denince  ilk olarak aklımıza programlama dilleri, bu diller kullanılarak yazılmış kaynak programlar ve çeşitli amaçlar için oluşturulmuş dosyalar gelir.

Donanım Nedir ?

Donanım (hardware) : Bilgisayarın elektronik kısmı, yapısına verilen isimdir.

Yazılımın Sınıflandırılması

Yazılımı uygulama alanlarına göre 5 gruba ayırabiliriz :

  1. Bilimsel ve mühendislik yazılımları (scientific & engineering software).


Bilimsel ve mühendislik konularındaki problemlerin çözülmesinde kullanılan programlardır. Bu tür programlarda  veri miktarı göreli olarak düşüktür ancak matematiksel ve istatistiksel algoritmalar yoğun olarak kullanılabilir.Tamamen  hesaplama ağırlıklı işlemler içerir. Bu tür programlar ağırlıklı olarak bilgisayarın Merkezi İşlem Birimini (CPU) kullanırlar. Elektronik devrelerin çözümünü yapan programları, istatistik analiz paketlerini bu tür programlara örnek olarak verebiliriz.

  1. Mesleki yazılımlar (Business software).

Veri tabanı ağırlıklı yazılımlardır. Genel olarak verilerin yaratılması, işlenmesi ve dosyalarda saklanması ile ilgilidir. Bu tür programlara örnek olarak stok kontrol programları, müşteri takip programları, muhasebe programlarını  verebiliriz.

  1. Yapay zeka yazılımları (artificial intelligence software).

İnsan davranışlarını taklit etmeyi amaçlayan yazılımlardır. Örnek olarak robot yazılımları, satranç ya da briç oynatan programlar vs. verilebilir.

  1. Görüntüsel yazılımlar.

Görüntüsel işlemlerin ve algoritmaların çok yoğun olarak kullanıldığı programlardır. Örnek olarak oyun ve animasyon yazılımlarını verebiliriz. Bu yazılımlar ağırlıklı olarak bilgisayarın grafik arabirimini kullanırlar.

  1. Sistem yazılımları (system software):

Bilgisayarın elektronik yapısını yöneten yazılımlardır. Derleyiciler, haberleşme programları, işletim sistemi birer sistem yazılımıdır. Örneğin text editörü de bir sistem yazılımıdır. Uygulama programlarına göre daha düşük seviyeli işlem yaparlar.

Programlama Dillerinin Sınıflandırılması

Programlama dillerini çeşitli açılardan sınıflandırabiliriz. En sık kullanılan sınıflandırmalar:

    1. Seviyelerine göre sınıflandırma.
    2. Uygulama alanlarına göre sınıflandırma.

Bilgisayar Dillerinin Seviyelerine Göre Sınıflandırması ve Seviyelerine Göre Bilgisayar Dillerinin Gelişimi

Bir programlama dilinin seviyesi deyince o programlama dilinin insan algısına olan yakınlığının derecesini anlıyoruz.  Bir programlama dili insan algılasına ne kadar yakınsa o kadar yüksek seviyeli demektir (high level). Yine bir programlama dili bilgisayarın elektronik yapısına ve çalışma biçimine ne kadar yakınsa o kadar düşük seviyeli (low level) demektir. Yüksek seviyeli dillerle çalışmak programcı açısından kolaydır. Algoritma yoktur. Bu dillerde yalnızca nelerin yapılacağı programa bildirilir ama nasıl yapılacağı bildirilmez. Genel olarak programlama dilinin seviyesi yükseldikçe , o dilin öğrenilmesi ve o dilde program yazılması kolaylaşır.

Bir bilgisayar yalnızca kendi makine dilini doğrudan anlayabilir. Makine dili bilgisayarın doğal cheap mlb jerseys dilidir Jay ve bilgisayarın donanımsal tasarımına bağlıdır. Bilgisayarların geliştirilmesiyle birlikte onlara iş yaptırmak için kullanılan ilk diller de makine dilleri olmuştur. Bu yüzden makine dillerine 1. kuşak diller de diyebiliriz.

Makine dilinin programlarda kullanılmasında karşılaşılan iki temel problem vardır. Makine dilinde yazılan kodlar doğrudan makinanın işlemcisine, donanım parçalarına verilen komutlardır. Değişik bir CPU kullanıldığında ya da bellek organizasyonu farklı bir şekilde yapıldığında  artık program çalışmayacak  ve programın tekrar yazılması gerekecektir. Çünkü makine dili yalnızca belirli bir CPU ya da CPU serisine uygulanabilir. Makine dili taşınabilir (portable) değildir. Diğer önemli bir problem ise, makine dilinde kod yazmanın çok zahmetli olmasıdır.Yazmanın çok zaman alıcı ve uğraştırıcı olmasının yanı sıra yazılan programı okumak ya da algılamak da o denli zordur. Özellikle program boyutu büyüdüğünde artık makine dili programlarını geliştirmek, daha büyütmek iyice karmaşık bir hale gelir.

Başlangıçta yalnızca makine dili vardı. Bu yüzden makine dilleri 1. kuşak diller olarak da isimlendirilir. Yazılımın ve donanımın tarihsel gelişimi içerisinde makine dilinden, insan algılamasına çok yakın yüksek seviyeli dillere (4. kuşak diller) kadar uzanan bir süreç söz konusudur. Bu tarihsel süreci ana hatlarıyla inceleyelim :

1950 cheap mlb jerseys li yılların hemen başlarında makine dili kullanımın getirdiği problemleri ortadan kaldırmaya yönelik çalışmalar yoğunlaştı. Bu yıllarda makine dilleri bilgisayarın çok sınırlı olan belleğine yükleniyor ve programlar böyle çalıştırılıyordu. İlk önce makine dilinin algılanma ve anlaşılma zorluğunu kısmen de olsa ortadan kaldıran bir adım atıldı. Sembolik makine dilleri geliştirildi. Sembolik makine dilleri (Assembly languages) yalnızca 1 ve 0 dan oluşan makine dilleri yerine İngilizce bazı kısaltma sözcüklerden oluşuyordu. Sembolik makine dillerinin kullanımı kısa sürede yaygınlaştı. Ancak sembolik makine dillerinin makine dillerine göre çok önemli bir dezavantajı söz konusuydu. Bu dillerde yazılan programlar makine dilinde yazılan programlar gibi bilgisayarın belleğine yükleniyor ancak programın çalıştırılma aşamasında  yorumlayıcı (interpreter) bir program yardımıyla sembolik dilin komutları, bilgisayar tarafından komut komut makine diline çevriliyor ve oluşan makine kodu çalıştırılıyordu. Yani bilgisayar, programı çalışma aşamasında önce yorumluyarak makine diline çeviriyor daha sonra makine diline çevrilmiş komutları icra ediyordu. Bu şekilde çalıştırılan programların hızı neredeyse 30 kat yavaşlıyordu.

Bu dönemde özellikle iki yorumlayıcı program öne çıkmıştı: John Mauchly nin UNIVAC 1 için yazdığı yorumlayıcı (1950) ve John Backus tarafından 1953 yılında IBM 701 için yazılan “Speedcoding” yorumlama sistemi. Bu tür yorumlayıcılar makine koduna göre çok yavaş çalışsalar da programcıların verimlerini artırıyorlardı. Ama özellikle eski makine dili programcıları yorumlayıcıların çok yavaş olduklarını, yalnızca makine dilinde yazılanların gerçek program deneceğini söylüyorlardı.

Bu sorunun da üstesinden gelindi. O zamanlar için çok parlak kabul edilebilecek fikir şuydu: Her defasında yazılan kod, kodun çalıştırılması sırasında makine diline çevireceğine, geliştirilecek bir başka program sembolik dilinde yazılan kodu bir kez makine diline çevirsin ve artık program ne zaman çalıştırılmak istense, bilgisayar yorumlama olmaksızın yalnızca  makine kodunu çalıştırsın. Bu fikiri geliştiren Grace Hopper isimli bir bayandı. Grace Hopper’ın buluşuna “compiler” derleyici ismi verildi. (Grace Hopper aynı zamanda Cobol dilini geliştiren ekipten biridir, bug(böcek) sözcüğünü ilk olarak Grace Hopper kullanmıştır.) Artık programcılar sembolik sözcüklerden oluşan Assembly programlarını kullanıyor. Yazdıkları programlar derleyici tarafından makine koduna dönüştürülüyor ve makine kodu eski hızından birşey kaybetmeksizin tam hızla çalışıyordu.  Assembly diller 2. kuşak diller olarak tarihte yerini aldı.

Assembly dillerinin kullanılmaya başlamasıyla bilgisayar kullanımı hızla arttı. Ancak en basit işlemlerin bile bilgisayara yaptırılması için bir çok komut gerekmesi, programlama prosesini daha hızlı bir hale getirmek için arayışları başlatmış, bunun sonucunda da daha yüksek seviyeli programlama dilleri geliştirilmeye başlanmıştır.

Tarihsel süreç içinde Assembly dillerinden daha sonra geliştirilmiş ve daha yüksek seviyeli diller 3. kuşak diller sayılmaktadır. Bu dillerin hepsi algoritmik dillerdir. Bugüne kadar geliştirilmiş olan yüzlerce yüksek seviyeli programlama dilinden yalnızca pek azı bugüne kadar varlıklarını sürdürebilmiştir:

FORTRAN dili (FORmula TRANslator) kompleks matematiksel hesaplamalar gerektiren mühendislik ve bilimsel uygulamalarda kullanılmak üzere 1954 – 1957 yılları arasında IBM firması için John Backus tarafından geliştirilmiştir. FORTRAN dili, Apache防DDOS模块mod_evasive安装和配置方法详解 yoğun matematik hesaplamaların gerektiği bilimsel uygulamalarda halen yaygın olarak kullanılmaktadır. FORTRAN dilinin FORTRAN IV ve FORTRAN 77 olmak üzere iki önemli versiyonu bulunmaktadır. Doksanlı yılların başlarında FORTRAN – 90 isimli bir versiyon için ISO ve ANSI standartları kabul edilmiştir. FORTRAN dili 3. seviye dillerin en eskisi kabul edilmektedir.

COBOL (COmmon Business Oriented Language) 1959 yılında, Amerika’daki bilgisayar üreticileri, özel sektör ve devlet sektöründeki bilgisayar kullanıcılarından oluşan bir grup tarafından geliştirilmiştir. COBOL’un geliştirilme amacı veri yönetimi ve işlemenin gerektiği ticari uygulamalarda kullanılacak taşınabilir bir programlama dili kullanmaktır. COBOL dili de halen yaygın olarak kullanılmaktadır.

ALGOL (The ALGOritmick Language) 1958 yılında Avrupa’da bir konsorsiyum tarafından geliştirilmeye başlanmıştır. IBM Firması FORTRAN dilini kendi donanımlarında kullanılacak ortak programlama dili olarak benimsediğinden, Avrupa’lılar da alternatif bir dil geliştirmek istemişlerdi. ALGOL dilinde geliştirilen bir çok prensip modern programlama dillerinin hepsinde kullanılmaktadır.

60’lı yılların başlarında programlama dilleri üzerinde yapılan çalışmalar yapısal programlama kavramını gündeme getirmiştir. Bu dillerden bazılarına kısaca göz atalım:

PASCAL dili 1971 yılında akademik çevrelere yapısal programlama kavramını tanıtmak için Profesör Niclaus Wirth tarafından geliştirilmiş  (Dilin yaratıcısı, dile matematikçi ve filozof Blaise Pascal’ın ismini vermiştir.) ve bu dil kısa zaman içinde üniversitelerde kullanılan programlama dili haline gelmiştir.

Pascal dilinin ticari ve endüstriyel uygulamaları desteklemek için sahip olması gereken bir takım özelliklerden yoksun olması bu dilin bu uygulamalarda fazla kullanılmamasına yol açmıştır. Modula ve Modula-2 dilleri Pascal dili baz alınarak geliştirilmiştir.

BASIC Create dili 1960’lı yılların ortalarında John Kemeney ve Thomas Kurtz tarafından geliştirilmiştir. Her ne kadar BASIC isminin “Beginner’s All_purpose Symbolic Instruction Code” sözcüklerinin baş harflerinden oluşturulduğu söylense de, bu sözcüklerin daha wholesale jerseys sonradan uydurulduğu açıktır. Yüksek seviyeli dillerin en eski ve en basit olanlarından biridir.Tüm basitliğine karşın, bir çok ticari uygulamada kullanılmıştır. BASIC dili de ANSI tarafından standartlaştırılmıştır. Ancak BASIC dilinin ilave özellikler içeren bir sürü versiyonu söz konusudur. Örneğin Microsoft firmasının  çıkarttığı Visual Basic Sports diline  Nesne Yönelimli Programlamaya ilişkin birçok özellik eklenmiştir. Ayrıca BASIC dilinin bazı versiyonları uygulama programlarında (Örneğin MS Excel ve MS Word’de) kullanıcının özelleştirme ve otomatikleştirme amacıyla yazacağı makroların yazılmasında kullanılan programlama dili olarak da genel kabul görmüştür.

ADA dili ise Amerikan Savunma Departmanı (Department of Defence -DoD) desteği ile 70 li yıllar ve 80’li yılların başlarında geliştirilmiştir. Dod dünyadaki en büyük bilgisayar kullanıcılarından biridir. Bu kurum farklı yazılımsal gereksinimleri karşılamak için çok sayıda  farklı programlama dili kullanıyordu ve tüm gereksinmelerini karşılayacak bir dil arayışına girdi. Dilin tasarlanması amacıyla uluslararası bir yarışma düzenledi. Yarışmayı kazanan şirket (CII-Honeywell Bull of France) cheap jerseys Pascal dilini baz olarak alan çalışmalar sonucunda Ada dilini  geliştirdi. Ada dilinin dökümanları 1983 yılında yayımlanmıştır.(Ada ismi, şair Lord Byron’un kızı olan Lady Ada Lovelace’ın isminden alıntıdır. Ada Lovelace delikli kartları hesap makinalarında ilk olarak kullanılan Charles Babbage’in yardımcısıydı. Charles Babbage hayatı boyunca “Fark makinası” (Difference Engine) ve “Analitik Makine” (Analytical Engine) isimli makinaların yapımı üzerinde çalıştı ama bu projelerini gerçekleştiremeden öldü. Yine de geliştirdiği tasarımlar modern bilgisayarların atası kabul edilmektedir. Ada Lovelace Charles Babbage’ın makinası için delikli kartları ve kullanılacak algoritmaları hazırlıyordu. Bu bayanın 1800’lü yılların başında ilk bilgisayar programını yazdığı kabul edilmektedir.) Ada dili genel amaçlı bir dildir, ticari uygulamalardan roketlerin yönlendirilmesine kadar birçok farklı alanda kullanılmaktdır. Dilin önemli özelliklerinden bir tanesi gerçek zaman uygulamalarına (real-time applications / embedded systems) destek vermesidir. Başka bir özelliği de yüksek modülaritesi nedeniyle büyük programların yazımını kolaylaştırmasıdır. cheap mlb jerseys Ancak büyük ve karmaşık derleyicilere ihtiyaç duyması, C, Modula-2 ve C++ dillerine karşı rekabetini zorlaştırmıştır.

Çok yüksek seviyeli ve genellikle algoritmik yapı içermeyen programların görsel bir ortamda yazıldığı diller ise 4. kuşak diller olarak isimlendirilirler. Genellikle 4GL olarak kısaltılırlar. (fourth generation language). İnsan algısına en yakın dillerdir.

RPG dili 4. kuşak dillerin ilki olarak kabul edilebilir.Özellikle küçük IBM makinalarının kullanıcıları olan şirketlerin, rapor üretimi için basit bir dil istemeleri üzerine IBM firması tarafından geliştirilmiştir.

Programlama dillerini seviyelerine göre 5 ana gruba ayırabiliriz:

  1. Çok yüksek seviyeli diller ya da görsel diller (visual languages):

Access, Foxpro, Paradox,  Xbase, Visual Basic, Oracle Forms.

  1. Yüksek seviyeli diller (Bunlara algoritmik diller de denir):

Fortran, Pascal, Basic, Cobol.

  1. Orta seviyeli programlama dilleri:

Ada, C. Orta seviyeli diller daha az kayıpla makine diline çevrilebildiğinden daha hızlı çalışır.

  1. Alçak seviyeli programlama dilleri:

Sembolik makine dili (Assembly language).

  1. Makine dili:

En aşağı seviyeli programlama dili.  (Saf makine dili tamamen 1 ve 0 lardan oluşuyor.)

Uygulama Alanlarına Göre Sınıflandırma

  1. Bilimsel ve mühendislik  uygulama dilleri:

Pascal, C (C programlama dili üniversitelerdeki akademik çalışmalarda da yoğun olarak is kullanılıyor.),  FORTRAN

  1. Veri tabanı dilleri:

XBASE, (Foxpro, Dbase, CA-Clipper), Oracle Forms, Visual Foxpro.

  1. Genel amaçlı programlama dilleri:

Pascal, C, Basic.

  1. Yapay zeka dilleri:

Prolog, Lisp.

5.  Simulasyon dilleri

GPSS, Simula 67

6.  Makro Dilleri (Scripting languages)

awk, Perl, Python, Tcl, JavaScript.

7.  Sistem programlama dilleri:

Sembolik makine dilleri, BCPL,  C, C++, occam.

Günümüzde  sistem yazılımların neredeyse tamamının C dili ile yazıldığını söyleyebiliriz.

Örnek vermek gerekirse UNIX işletim sisteminin % 80’i C dili ile geri kalanı ise sembolik makine dili ile yazılmıştır. Bu işletim sistemi ilk olarak BELL labaratuarlarında oluşturulmuştur. Kaynak kodları gizli tutulmamış, böylece çeşitli kollardan geliştirilmesi mümkün olmuştur. Daha sonra geliştirilen UNIX bazlı işletim sistemi uygulamalarına değişik isimler verilmiştir.

C bilimsel ve mühendislik alanlarına kullanılabilen genel amaçlı bir sistem programlama dilidir.

Yorum Yapın

Cansuu,Cansu'nun Web Günlüğü © 2015     Tüm haklarım saklıdır.