Geçmişten Günümüze Programlama Dilleri

Sizce günümüze kadar geliştirilmiş programlama dillerinin sayısı nedir?
31 Ocak 2009
Wikipedia daki alfabetik programlama dilleri listesini kaynak olarak kabul ettiğimizde, yaklaşık 500 adet programlama dili mevcut. Doğal olarak bu dillerin bir çoğu günümüzde kullanılmıyor ve bir çoğu da nadiren kullanım alanı buluyor, ama yine de yüzlerle ifade edilen bir büyüklükten bahsediyoruz...

PROGRAMLAMA DİLLERİNİN GELİŞİMİ
Programlama dillerinden bahsetmeden önce genel olarak gelişimlerinden bahsetmek istiyorum. Literatüre göre programlama dillerini gelişim evrelerine göre 5 nesilde(generation) inceleyebiliriz. Bilgi teknolojilerinin ilk çağlarında bilgisayara (machine) yakın olan diller, her yeni nesille birlikte günlük yaşama ve insana (human) yakınlaşmış durumdalar. Araştırmalarıma dayanarak söyleyebileceğim 1837 yılında duyurulan “Analytical Engine Code Order” programlama diliyle başlayan macerayı öncelikle nesil ayrımında incelemek istiyorum.

Birinci Nesil Programlama Dilleri – Makine Dilleri
Birinci nesil programlama dilleri ilk bilgisayarlarla birlikte ortaya çıkan programlama ihtiyacını karşılakamk üzere geliştirilen ve tamamen geliştirildiği makinenin (machine) özelliklerine odaklı (machine-level) makine seviyesi dillerdi. Komutlar direkt olarak bilgisayar üzerindeki bir panel aracılığıyla herhangi bir derleyici ya da çevrime ihtiyaç duyulmadan giriliyordu. Birinci nesil programlama dillerinin işlemciye doğrudan verilen komutlarla çalışıyor olmaları hız ve yetenek açısından çok güçlü olmalarını sağlıyordu. Ancak öğrenilmeleri ve uygulanmaları zor, hata durumlarını yönetmek sıkıntılıydı. Diğer taraftan belirli bir işlemci/makine için yazılan kod, farklı yapıdaki başka bir makinede çalışmıyor, tamamen yeniden yazılması gerekiyordu.
Günümüzde halen çok eski makineler için kullanım alanı bulan makine dili aynı zamanda modern programlama dillerinin nihai halidir. Herhangi bir modern dille geliştirdiğiniz programı derlediğinizde (compile) ortaya çıkan şey birinci nesil bir makine dilinden başka bir şey değildir.
Bilinen makine dillerinden örnekler:
• ARM
• Intel 80x86
• IBM 360
• MIPS R2000|R3000
• MOS Tech 6502
• Motorola 680x
• Power Architecture - (POWER and PowerPC)
• StrongARM
• Sun SPARC, UltraSPARC

İkinci Nesil Programlama Dilleri – Çevirici Diller
İnsanlar tarafından makine dillerine oranla daha anlaşılır olan (human-readable) bu diller assembly – çevirmen diller olarak bilinirler. Direkt işlemciye/makineye özel kodların yerini komutlar ve kısaltmalar kullanılmaktadır. Fakat halen makineye özel programlama yapılması gerekmektedir. Ayrıca bu dillerle geliştirilen programların makinelerde çalışabilmesi için makine diline çevrilmeleri gerekiyordu. Bu noktada assembler yani çevirmenler devereye giriyordu.
Günümüzde halen özel donanımların progranlanmasında, işletim sistemleri çekirdeklerinde assembly dilleri kullanılmaktadır.
Bilinen bazı çevirici diller:
• ASEM-51 [1]
• BAL (Basic AssembLer)
• COMPASS (COMPrehensive ASSembler)
• Emu8086
• FAP (FORTRAN Assembly Program)
• FASM (Flat Assembler; IA-32, IA-64)
• GAS (GNU Assembler)
• HLA (High Level Assembly)
• MASM (Microsoft Macro Assembler)
• NASM (Netwide Assembler)
• NEAT (National's Electronic Autocoder Technique)
• TASM (Turbo Assembler, Borland)

Üçüncü Nesil Programlama Dilleri – Yapısal Diller
Programlama dillerinin günümüzde yaygın kullanılan ve bilinen türlerinin geliştirildiği nesil, üçüncü nesildir. İngilizce ağırlıklı olarak insanların kullandığı dillere yakın, yüksek seviyede (insana yakın) yapısal dillerdir. Bu nesille birlikte yazılım geliştirme makine bağımlılıktan kurtarılmıştır. Yazılan programlar farklı makinelerdede kullanmaya başlanmıştır. Üçüncü nesil dillerin yüklendiklerini bilgisayarda çalışması için derleyici (compiler) ya da yorumlayıcı (interpreter) aracılığına ihtiyaç duyulur.
Yapısal dillerden örnekler:
• Fortran
• ALGOL
• COBOL
• BASIC
• C
• C++
• Delphi
• Java

Dördüncü Nesil Programlama Dilleri – Çözüme Yönelik Diller
Üçüncü nesil dillerin programlama anlalmında çok çiddi ilerlemeler sağlamasına rağmen, ticaret ve iş yaşamında özel durumlara yönelik hızlı çözümler geliştirebilme ihtiyacı dördüncü nesil programlama dillerinin gelişimine neden olmuştur.
Kullanımı çok daha kolay, daha az kod yazarak yönergeler, hazır şablonlar ve sihirbazlar sayesinde belirli ihtiyaçlarda uzmanlaşmış pratik çözümler geliştirmeye yönelik olan bu diller rapor üreteci (generator), form üreteci, vaka tasarımı, veri yönetimi, istatiksel analitik, vb alanlarda uygulamalar geliştirmeye yöneliktir.
Örnek araçlar:
• Informix-4GL
• Progress 4GL
• SQL
• Oracle Forms /Reports
• PostScript
• RPG-II
• Gauss
• ABAP
• Mathematica
• PL/SQL
• Progress 4GL
• SPSS
• Borland Delphi
• MATLAB's GUIDE
• Windows Forms
• Powerbuilder
• Progress Dynamics
• ColdFusion

Beşinci Nesil Programlama Dilleri
Beşinci nesil programlama dilleri programcının algoritma geliştirerek çözüm geliştirmesinin ötesinde, koşulları ve kısıtları bilgisayara verdiğinizde, bilgisayarın çözümü kendisinin bulmasına yönelik olarak tasarlanmaktadır. Açıkça kodlamanın yerine (imperative) bildirimsel (declarative) yöntemle çalışan ve özellikle yapay zeka alanında araştırmalarda kullanılan bu yeni programlama dillerine örnek olarak Prolog, OPS5 ve Mercury verilebilir.


PROGRAMLAMA DİLLERİNİN TARİHÇESİ
Programlama dillerinin nesil nesil gelişimini inceledikten sonra sıra tarihsel gelişimleri üzerinden geçmeye geldi. Programlama dillerinin gelişimi, bilgisayarların gelişimine paralel olarak yol almıştır. Bu noktada ilk elektronik dijital bilgisayarların ilan edilmesi 1940’lı yıllarda olmasına rağmen, çok daha öncesinden bu alanda çalışmalar yapıldığını görüyoruz.

1940 Öncesi
1837 yılında bir İngiliz profösörü olan Charles Babbage, çok amaçlı kullanım için geliştirdiği hesaplayıcısına bir sırılama/komut seti oluşturdu. Babbage ilk olarak 1837 yılında açıkladığı “Analytical Engine Order Code” çalışmalarını 1871 yılına kadar sürdürdü. Her ne kadar araç politik, ekonomik ve yasal sebeplerle yaygınlaşmasa da kayıtlara geçen ilk programlama dili olarak kabul edilmektedir. Daha sonraları, 1950’li yılların sonlarında, Howard Aiken Analytical Engine Order Code’u baz alarak “CPC Coding Schema” yı geliştirdi. Ve 1949’da Robert Seeber CPC Coding Schema temellerinden yola çıkarak “Seeber Coding Schema” yı açıkladı.
(Resim: CharlesBabbage.jpg) (Charles Babbage)

1940’lı Yıllar
“ENIAC Coding System” ilk elektronik dijital bilgisayarlardan olan Electronic Numerical Integrator and Computer (ENIAC) için 1943 yılında geliştirilmiştir. John Von Neumann, John Mauchly, J. Presper Eckert ve Herman Goldstine’in başını çektiği ekip tarafından geliştirilen dilin üzerine 1946 yılında “Eniac Short Code”, 1947 yılında Kathleen Booth tarafından “ARC Assembly”, 1948’de Haskell Curry tarafından “Curry Notation System” , 1949’da John Mauchly ve William F. Schmitt tarafından “Brief Code” ve yine 1949 yılında Betty Holberton tarafından “C-10” dilleri geliştirilmiştir.
(Resim: Eniac.jpg) (Electronic Numerical Integrator and Computer (ENIAC))
1943 - Plankalkül (Konrad Zuse)
1943 - ENIAC coding system
1949 - C-10

1950’li ve 1960’lı Yıllar
Bu yıllar modern programlama dillerinin temellerinin atıldığı yıllardır.
1951 - Regional Assembly Language
1952 - Autocode
1954 - FORTRAN (FORmula TRANslator)
1958 - LISP (LISt Processor)
1958 - ALGOL (ALGOrithmic Language)
1959 - COBOL (COmmon Business Oriented Language)
1962 - APL (A Programming Language)
1962 - Simula
1964 - BASIC (Beginner's All-purpose Symbolic Instruction Code)
1964 - PL/I (Programming Language One)

1970’li Yıllar
Bu yıllarda programlama dilleri olgunlaşmaya, çeşitlenmeye başladığı ve yapısal programlama dillerinin geliştirildiği yıllardır.
1970 - Pascal
1972 - C
1972 - Smalltalk
1972 - Prolog
1973 - ML
1978 - SQL

1980’li Yıllar
1980’li yıllar daha geniş sistemler için ölçeklenebilir uygulamalar geliştirebiliecek dillerin doğduğu yıllardır. Bu yıllar nesne yönelimli programlamanın (Object Oriented Programming) çokça konuşulduğu yıllardı.
1983 - Ada
1983 - C++
1985 - Eiffel
1987 - Perl
1989 - FL (Function Level)

1990’lı Yıllar
İnternetin yaygınlaşmasıyla birlikte, internetle çok ciddi anlamda bütünleşen Java dilinin geliştirildiği ve yaygınlaştığı yıllardı oldu 1990’lar.
1990 - Haskell
1990 - Python
1991 - Java
1993 - Ruby
1995 - PHP
1995 - Delphi
2000 - C#


PROGRAMLAMA DİLLERİNİN GELECEĞİ
Genel hatlarıyla geçmişten günümüze inceledğimiz programlama dillerinin geleceği için söylenecek çok şey var. İlk olarak yapay zeka üzerine yürütülen çalışmalarda bir taraftan programlama dilleri yapay zekanın gelişimine katkıda bulunurken, diğer taraftan yapay zeka çalışmaları programlama dillerinin gelişimine katkıda bulunmaktadır.

İlk başlarda direkt işlemciye komut göndermek anlamına gelen programalama, zamanla algoritma geliştirme düzeyine gelmiş, arkasından alanlarında uzmanlaşan programcılara zaman kazandırabilmek için ekran tasarım üreteçleri, veritabanı geliştirme araçları gibi proje geliştirmeye hız katan bileşenlerle donatılmıştır. Zamanın ve hızlı sonuçlar almanın çok değerli olduğu günümüzde kurumlar ihtiyaçlara mümkün olan en kısa zamanda ve en etkin biçimde cevap vermek durumundadır. Bu nedenle bazı programlama süreçleri uzman yazılımcılığın dışına taşarak departman bazında raporlama, analiz, basit arayüzler geliştirerek veri toplama gibi işlemleri üretmeyi gerektirmiş ve program dili geliştiriciler de bu yönde ürünler geliştirmişlerdir. Biraz daha ileriye baktığımızda beşinci nesil programlama dillerinde hedeflenen, bazı kısıtları ve gerekli bilgileri verdiğinizde ihtiyacınız olan uygulamanın geliştirilebilmesi fikri hiç de uzak değil.

Kadir Çamoğlu,
Microsoft MVP
kadircam@hotmail.com

* * *
NOT:
Blogdaki diğer yazılarla ilgili bilgi almak için tıklayın.
http://www.chip.com.tr/blog/kadircamoglu/Blogda-Neler-Var_1479.html

Eğer facebook grubumuza halen üye değilseniz tıklayın.
http://www.facebook.com/group.php?gid=29006737231

Toplam 10273 kez okundu.
Oyla:
En Düşük
Oy ver: 1Oy ver: 2Oy ver: 3Oy ver: 4Oy ver: 5
En Yüksek
YORUMLAR
Toplam 18 yorum
1234Sonraki
Ziyaretçi yazmış:
saolllllllllll
19 Eki 2010  10:49%100Bu yorumu beğendimBu Yorumu Beğenmedim%0
Ziyaretçi yazmış:
Çok tesekkrler çk yardımcı oldn
10 Mar 2010  19:51%50Bu yorumu beğendimBu Yorumu Beğenmedim%50
Ziyaretçi yazmış:
cok sagolun kadir abi bu programlama dilini yazmışsın cok sagol
09 Eki 2009  15:40%33Bu yorumu beğendimBu Yorumu Beğenmedim%67
Ziyaretçi yazmış:
emeğine sağlık hocam...güzel anlatmışsın..
22 Tem 2009  16:49Bu yorumu beğendimBu Yorumu Beğenmedim
Ziyaretçi yazmış:
Bilgisayar ve bilgisayar içindeki herhangi bir mantık birimiyle iletişim kurmak için kullanılan işaret ve semboller grubuna programlama dili denir.
17 Tem 2009  19:14%100Bu yorumu beğendimBu Yorumu Beğenmedim%0
1234Sonraki


Bu sayfalarda yer alan okur yorumları kişilerin kendi görüşleridir. Yazılanlardan CHIP Online sorumlu değildir.
Siz de yorumunuzu yazın
CHIP Online Ziyaretçisi
Yorumunu Gönder
Lütfen bu bölüme sadece yorumlarınızı yazın. Teknik yardıma ihtiyaç duyduğunuz konuları lütfen forumda ilgili bölüme veya Uzmanına Sorun bölümümüze yazın, yanıtınızı çok daha sağlıklı ve hızlı olarak alabilirsiniz
Siz de kendi teknoloji blogunuzu ücretsiz oluşturun!

Tek Kişilik Yazılımevi-Kategoriler

 


Ocak 2009
PtsSalÇarPerCumCtsPzr
   1234
567891011
12131415161718
19202122232425
262728293031 

CHIP Online Yazar Blogları

Yazarlarımızdan, editörlerimizden sizlere...

Cem SinanoğluCem Sinanoğlu
Ne halin varsa gör!
Selim ÖztürkSelim Öztürk
22 Kasım = Sansür mü?
Rik FergusonRik Ferguson
Yılbaşı alışverişinde yalancı fırsatlara kanmayın!
Kadir ÇamoğluTek Kişilik Yazılımevi
Yazılım Test Uzmanlığı Kariyeri
Zeynel ÖztürkZeynel Öztürk
Google+ sizi yayınlamasın!
 

CHIP Dergisi: Şubat 2012


İşbirliği ortaklarımız

  • Hepsiburada.com
  • Level
  • Turhost
  • CHIP Download
  • yenibiris.com
  • CHIP Download
 
 
Cep telefonları | Ekran kartları | Masaüstü | Notebook | Ses kartları | Webcam | Klavye & Fare | Yazıcılar | Tablet Ev Sineması
Mp3 Player | Usb Bellekler | Video kameralar | Fotoğraf Makinesi | Taşınabilir diskler | LED & LCD Tv | Monitörler | OEM | PDA
Navigasyon | Oyun Konsolu