Programlama dillerini ayırt etmenin birçok yolu vardır. Başlangıç ​​olarak, farklı paradigmalara girerler: işlevsel, nesne yönelimli ve daha fazlası.

Bir programlama dilini, bir dilin performansı üzerinde büyük bir etkisi olan çeviri yöntemine göre de sınıflandırabilirsiniz. Derlenmiş programlama dilleri genellikle yorumlananlardan daha hızlıdır. Bu nedenle, oyun geliştirme gibi hız gerektiren durumlarda geliştiriciler derlenmiş dilleri kullanma eğilimindedir.

Çeviri Nedir?

Çeviri işlemi, bir programcı tarafından yazılan kodu, bir bilgisayarın çalıştırabileceği makine koduna dönüştürür. Makine kodu, birler ve sıfırlar içeren düşük seviyeli bir dil türüdür. Yani çevirmenin yaptığı, bir programlama dilinde oluşturduğunuz üst düzey kodu makine koduna dönüştürmektir.

Çevirmenler olmasaydı makine dilinde kodlama yapmanız gerekirdi. Bildiğiniz her üst düzey programlama dili, üç çeviri yönteminden birini kullanır: bir derleyici, bir yorumlayıcı veya ikisinin bir karışımı.

Derleyici Nedir?

Derleyici, yüksek seviyeli bir dilde yazılmış kaynak kodunu yürütmek için düşük seviyeli koda dönüştüren bir yazılımdır.

instagram viewer

Yukarıdaki diyagram, en temel haliyle bir derleyiciyi temsil etmektedir. Derleyicinin birkaç aşaması vardır. Her aşama, kodu bir durumdan diğerine dönüştürür. Her derleyici aşamasının amacı, sonraki aşamanın manipüle etmesi için daha kolay bir çıktı oluşturmaktır. Bir derleyicinin genel yapısı aşağıdaki gibidir:

  • Tarayıcı: Bu aşama bir karakter akışı alır ve bunları tanımlayıcıları, dize değişmezlerini vb. temsil eden belirteçler halinde gruplandırır.
  • Ayrıştırıcı: Bu aşama, belirteçleri kaynak programlama dilinin dilbilgisine göre gruplandırır. Programı oluşturan ifadelerin bir koleksiyonu olan soyut bir sözdizimi ağacı oluşturur.
  • Anlambilim: Bu aşama, soyut sözdizimi ağacı (AST) üzerinde anlamsal bir analiz gerçekleştirir. AST ifadelerine türler atayarak ve geçerliliklerini kontrol ederek anlam eklemek için kaynak dilin kurallarını kullanır. AST daha sonra bir ara temsil haline gelir.
  • Ara Temsil (IR): Bu aşama, orijinal programın kaynak kodunu makine koduna dönüştürür. Montaj kodunun basitleştirilmiş bir versiyonunu üretir. IR, IR kodunu geliştirmek ve üzerinde çalıştığı makine için bilgi toplamak için bir veya daha fazla optimize edici kullanır. Optimize edici, bir programı daha verimli, daha hızlı ve hatta daha küçük hale getirebilir.
  • Kod Oluşturucu: Bu aşama, optimize edilmiş IR kodunu tüketir ve onu makine koduna dönüştürür.

Hangi Programlama Dilleri Derleyicileri Kullanır?

Bazı popüler derlenmiş programlama dilleri şunları içerir:

  • C
  • C++
  • Gitmek
  • Ada
  • Fortran
  • COBOL
  • peltek
  • Amaç-C
  • Süratli

Derlenmiş bir dil kullanmanın bir avantajı, derleme sırasında hataları tanımlamasıdır. Bu, bu tür hataları düzeltmenize ve ardından programı yeniden derlemeye çalışmanıza olanak tanır. Derlenmiş dillerin, yürütmeye başladıklarında başarısız olma olasılığı daha düşüktür. Bu diller, kaynak kodda sözdizimi hataları varsa çalışacak bir program bile oluşturmaz. Ancak anlamsal hatalar ve diğer çalışma zamanı hatası biçimleri bunu aşacaktır.

Derlenmiş diller de derlendikten sonra çok hızlı bir şekilde yürütülür.

Tercüman Nedir?

Yorumlayıcı, aynı anda tek bir kod satırını çeviren ve yürüten bir programdır. Bu işlem, yorumlayıcı verilen program veya komut dosyasındaki son kod satırına ulaşana kadar tekrar eder.

Yukarıdaki şemadan da görebileceğiniz gibi, bir yorumlayıcı iki girdi alır. İlk olarak, kaynak kodunun (programın) tamamını alır. Daha sonra programın ilk satırını (giriş olarak) okur, çevirir ve yürütür. Bu satır doğru yürütülürse, program veya komut dosyasındaki bir sonraki satıra geçer.

Derleyiciden farklı olarak, yorumlayıcı tüm programı makine koduna çevirmez. Bunun yerine, yürütmeden önce belirli bir kod satırını ayrıştırır ve analiz eder. Bir yorumlayıcı, bir programı, özellikle daha büyük bir programı, derleyici çevirmeyi bitirmeden önce çalıştırmaya başlamalıdır.

Hangi Programlama Dilleri Tercüman Kullanır?

Bazı popüler yorumlanmış programlama dilleri şunları içerir:

  • piton
  • JavaScript
  • Perl
  • MATLAB
  • TEMEL

Bir yorumlayıcı kodu daha hızlı yürütmeye başlasa da, bir hatayla karşılaşırsa yine de başarısız olur. Programcı olarak böyle bir hatayı düzeltmeniz ve programı yeniden başlatmanız gerekir. Bu olay, yorumlayıcı her yeni hatayla karşılaştığında gerçekleşir. Bazı hatalar, nadir görülen bir dizi koşulla ilgiliyse uykuda kalabilir. Bu gibi durumlarda, test her zamankinden daha önemli.

Yorumlayıcıların geliştirilmesi genellikle derleyicilerden daha kolaydır ve programları tasarım gereği daha taşınabilirdir.

Hibrit Çeviri Nedir?

Hibrit çeviri, bir derleyici ve bir tercüman kullanır. Hibrit çeviri, yüksek seviyeli kaynak kodunu bayt kodu gibi daha düşük seviyeli bir forma derler. Daha sonra bu bayt kodunu çalıştırmak için bir yorumlayıcı kullanır.

Hibrit çeviri bir programlama dilinden diğerine farklılık gösterebilir ancak bu genel yapıyı kullanır. Karma çeviri kullanan daha popüler programlama dillerinden biri Java'dır. Java derleyicisi kaynak kodunu şu dile çevirir: Java Sanal Makinesi (JVM) bayt kodu. Yorumlayıcı daha sonra JVM bayt kodunu makine koduna çevirir.

Hangi Programlama Dilleri Hibrit Çeviri Kullanıyor?

Bazı popüler karma programlama dilleri şunları içerir:

  • Java
  • C#
  • Visual Basic
  • Erlang
  • F#

Hibrit çeviri ile her iki dünyanın da en iyisini elde edersiniz. Önce kodu derlemek, hataları ilk fırsatta çözmenize olanak tanır. Hibrit derleyicilerin oluşturduğu bayt kodunun yorumlanması, üst düzey bir program kaynak kodundan daha kolaydır.

Farklı Çeviri Yöntemlerini Bilmenin Değeri

Özellikle yeni bir proje için kullanıyorsanız, bir dilin kullandığı belirli çeviri yöntemini anlamalısınız. Bir dil çeviri yöntemi, bir programlama dilinin kimliğinin önemli bir parçasıdır. Programınızı nasıl dağıttığınızı ve kullanıcıların onu nasıl çalıştıracağını etkileyebilir.

Her çeviri yaklaşımının kendine özgü değerleri vardır. C++, Python ve Java gibi en iyi programlama dillerinin tümü farklı çeviri yöntemleri kullanır. Bir dilin paradigmasının yanı sıra çeviri yöntemi de bilmeniz gereken en önemli özelliklerden biridir.

Bir programlama dilinin kullanabileceği birkaç paradigma vardır. En iyi programlama dillerinin çoğu çok paradigmalı dillerdir; iki veya daha fazla farklı paradigmanın kullanımını desteklerler. En popüler paradigmalardan üçü zorunlu, nesne yönelimli ve işlevsel programlamadır.