Merhaba,bugün sizlerle programlamanın mutfağına giriyoruz. Ancak öncelikle programlama nedir? ne değildir? diyerek başlayalım.

Programlama:

Programlama , bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.Diğer bir tanım verecek olursak programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir. Programlama, bir programlama dilinde yapılır. Yazılan kaynak kodu genellikle bir derleyici ve bağlayıcı yardımıyla belirli bir sistemde çalıştırılabilir hale getirilir.

Ayrıca kaynak kodu, bir yorumlayıcı yardımıyla derlemeye gerek duyulmadan satır satır çalıştırılabilir.Derleyici, yazılan programları okuyup içerisinde mantıksal veya yazınsal hatalar olup olmadığını bulan, bulduğu hataları kullanıcıya göstererek programın düzeltilmesine yardım eden, hata yoksa programı çalıştırıp sonucunu gösteren, ayrıca çeşidine göre pek çok başka özelliği barındırabilen (bir değişkenin üzerine mouse ile gelindiğinde değişkenin özelliklerini gösterme, fonksiyonun üzerine gelindiğinde kod içerisinde fonksiyonu bulup yazıldığı satıra gidebilme, kodların daha kolay okunabilmesi için etiketler yardımıyla kodları toparlayacak bölgeler oluşturabilme…) birer platformdur. Programcılar genelde programlamayı gerçek hayata benzetirler. Bir program yazmak veya bir problemi çözmek için öncelikle komutları unutmak ve çözümü gerçek hayatta yapıyormuş gibi düşünmek gerekir onlara göre. Komutlar sadece araçtır.

Programlamaya başlayanların kendi dilleriyle Merhaba, Dünya! (Genelde : Hello, World!) yazmalarıyla başlar ve bir programlama dilini öğrenmekteki tek zorluk programlamanın ne olduğunu öğrenmektir. Bundan sonraki aşamalar ise kolayca atlatılabilir.

 

Tanımda da belirtildiği gibi programlama mutfağının olmazsa olmazları var.

  1. Derleyici
  2. Yorumlayıcı
  3. Bağlayıcı
  4. Programlama Dilleri

Şimdi tek tek inceleyelim.Öncelikle derleyici ile başlayalım.

Derleyici:

Basitçe bir dilde yazılmış olan kodu (kaynak kodu) istenilen başka bir kod haline dönüştüren programdır. Genelde üretilen bu kod ortama göre çalıştırılabilir kod olarak üretilmektedir. Ancak bir derleyicinin daha doğru tanımı bir dildeki kodu başka dile çeviren program olarak yapılabilir. Örneğin C dilinde yazılan bir programı PASCAL diline çeviren programlara derleyici adı verilebilir.
Derleyicinin diğer bir tanımı ise daha üst seviye bir dilden daha alt seviyeli bir dile tercüme olarak kabul edilebilir. Buna göre örneğin C dilinden Assembly veya makine dili gibi daha alt dillere tercüme ile derleyici kavramı daha da sınırlandırılmış olarak kabul edilebilir.
Derleyiciler günümüzde daha çok bir dilde yazılmış koddan, işletim sistemi ve donanım bağımlı kodların üretilmesinde kulllanılmaktadırlar.
Bu üretim sırasında ya doğrudan işletim sisteminin anlayacağı ve çalıştıracağı kodları üretirler ya da işletim sisteminde bulunan veya yine dil bağımlı olarak çalışan bağlayıcı programların anlayacağı ara kodları üretirler.

Derleyiciler bu kod üretmesi sırasında, üretilen kodun en verimli şekilde üretilmesi için kod iyileştirmesi (optimizasyon) da yapmaktadırlar. Yani hedef dildeki çalışma süresi ve hafıza ihtiyacı en az olan kodu üretmek bir derleyicinin daha başarılı olma kriterlerinden birisidir.

Aynı zamanda kaynak kodda (source code) bulunan hataların yakalanması bu hataların programcıya bildirilmesi de derleyicilerin diğer görevlerinden birisidir.

Yorumlayıcı:

Bilgisayar dünyasında yorumlayıcı terimi bir programı veya bir komutu çalıştırmaya yarayan programlar için kullanılır. Genellikle derleyiciler ile karışan ve çoğu zaman aynı görevi icra eden yorumlayıcılar da derleyiciler gibi kodu bir dilden başka bir dile çevirme işlemini yerine getirirler. Basitçe görevleri ve tipleri aşağıdaki şekilde listelenebilir:
1. Kaynak kodu çalıştırmak
2. Bir kaynak kodu çalıştırılabilir farklı bir kod haline tercüme etmek
3. Daha önceden hazırlanmış olan (çoğu zaman önceden derlenmiş bir koddur) kodları yeri geldiğinde çalıştırmak

Perl, Python diller 2. tip dillere örnekken JAVA sanal makinesi ve Pascal dilleri 3. seviye dillere örnek olarak gösterilebilir. Çünkü java ve pascal’da daha önceden hazırlanmış olan program parçaları çalışma zamanında bağlanmaktadır.

Bağlayıcı:

Bağlayıcı, derleyici tarafından object dosyasına çevrilen bir veya birden çok dosyanın birbirleri ile ilişkilendirmesi ve tek bir çalıştırılabilir dosyaya çevrilmesini sağlayan yazılımdır.

Peki derleyici ve yorumlayıcı arasında ne gibi farklar vardır?

Basitçe, bir kaynak kodu hedef koda çevirdikten sonra çalıştıran ve dolayısıyla koddaki hataları yakalama işlemini ve kodun iyileştirilmesini daha kod çalıştırmadan yapan çeviricilere derleyici, kodu satır satır veya bloklar halinde çalıştırıp sırası gelmeyen satırları hiç çalıştırmayan bu satırlardaki hataları hiçbir zaman göremeyen ve kodun bütününe ait iyileştirmeleri yapamayan çeviricilere de yorumlayıcı adı verilmektedir.

Genel kanının tersine bir dilin derleyici veya yorumlayıcı özelliği yoktur. Yani C dili için sadece derleyicisi bulunan bir dildir demek yanlış olur. Bu durum bütün diller için geçerlidir. Her dil için bir derleyici veya yorumlayıcı tasarlanabilir. Ama daha genel bir bakışla, her dilin aslında yorumlayıcı yapısında bir çalışması olduğunu söylemek yanlış olmaz. Sonuçta bilgisayarın işlemcisinde anlık olarak tek bir işlem yapılabilmektedir ve çalışması istenen kod, işlemciye sırayla verilecek ve satır satır çalıştırılacaktır.

Genelde bir ortam yazılan dilin çalıştırılmasına kadar geçen sürede ya bir derleyici yada bir yorumlayıcı kullanılmaktadır. Gelişmekte olan teknolojiyle iki programı birden kullanan diller de türemiştir. Örneğin Java dilinde kod önce derlenerek byte code adı verilen ve sadece java sanal makinalarında çalıştırlabilen bir kod üretilmektedir. Bu üretilen ara kod daha sonra java sanal makinesinde bir yorumlayıcı yapısına uygun olarak çalıştırılmaktadır.

Ve sıra geldi programlama dillerine.Programlama dilleri programcının belli bir algoritmayı ifade etmek  için kullandığı standartlaşmış bir notasyondur. Bir programcı komutları yazmak için farklı programlama dilleri kullanabilir. Programlama dilleri, programcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Şu ana kadar 2500‘den fazla programlama dili yapılmıştır.

Tabii ki de burada hepsine değinemeyeceğim ancak sizlere tüm zamanların en iyisi olan, şeref kürsüsüne layık görülen dillerden bahsedeceğim.TIOBE software’ın yaptığı anketlere göre;

medal  2015 Hall of Fame – Java medal

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış gerçek nesneye yönelik, platformdan bağımsız, yüksek performanslı, çok işlevli, yüksek seviye, interpreted (adım adım işletilen) bir dildir.

medal  2014 Hall of Fame – JavaScript medal

Javascript bir betik diğer bir ifadeyle script dilidir. Betik Türkçemizde yazılı olan şey anlamına gelir. Ancak bunu daha da açarsak, betik dili aslında bilgisayar literatüründe uygulamaları harekete geçiren yazı bloklarına verilen isimdir. Bu anlamda javascript Web Programcıları için vazgeçilmez bir etkileşimli programlama dildir.

medal  2013 Hall of Fame –  Transact-SQL medal

SQL, düzeltilmesi veya değiştirilnesi istenen bilgileri açıkça belirtmeye izin veren ve yerine getirilebilecek başlıca işlemleri tanımlamamızı sağlayan bir komut takımıdır. Bu komutların oluşturduğu yapıya T-SQL dili denir. T-SQL ile veri ve sorgulara erişebilir, güncelleyebilir ve ilişkisel veri tabanı sistemi yönetilebilir.

medal  2012-2011 Hall of Fame –  Objective-C medal

Objective-C, C’nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

medal  2010 Hall of Fame – Python medal

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

Ve son olarak 2016 yılında en yüksek değerlendirmeye sahip ilk 10 programlama diline göz atalım.

Ekim 2016 Ekim 2015 Değişim Programlama Dili Derecelendirme Değişim
1 1 Java 18.799% -0.74%
2 2 C 9.835% -6.35%
3 3 C++ 5.797% +0.05%
4 4 C# 4.367% -0.46%
5 5 Python 3.775% -0.74%
6 8 change JavaScript 2.751% +0.46%
7 6 change PHP 2.741% +0.18%
8 7 change Visual Basic .NET 2.660% +0.20%
9 9 Perl 2.495% +0.25%
10 14 change Objective-C 2.263% +0.84%

Sıralama bilgileri Buradan alınmıştır.