Header Ads

Yeni

Derleme ve yorumlama

Derleme konsept resmi
Bilgisayar programlama, seçilen programlama dilinin öğelerini istenen etkiye neden olacak sırayla oluşturma eylemidir. Etki her özel durumda farklı olabilir - programcının hayal gücü, bilgisi ve deneyimine bağlıdır.
Tabii ki, böyle bir kompozisyon birçok anlamda doğru olmalıdır:
  • alfabetik olarak - bir programın Roman, Kiril, vb.Gibi tanınabilir bir senaryoda yazılması gerekir.
  • sözcüksel olarak - her programlama dilinin sözlüğü vardır ve bu konuda uzmanlaşmanız gerekir; Neyse ki, herhangi bir doğal dilin sözlüğünden çok daha basit ve daha küçüktür;
  • sözdizimsel olarak - her dilin kuralları vardır ve bunlara uyulmalıdır;
  • anlamsal olarak - program mantıklı olmalıdır.
Ne yazık ki, bir programcı yukarıdaki dört duyunun her biri ile de hata yapabilir. Her biri programın tamamen yararsız olmasına neden olabilir.
Başarılı bir program yazdığınızı varsayalım. Bilgisayarı yürütmeye nasıl ikna edebiliriz? Programınızı makine diline dönüştürmelisiniz. Neyse ki, çeviri bir bilgisayarın kendisi tarafından yapılabilir, bu da tüm süreci hızlı ve verimli hale getirir.
Bir programı üst düzey bir programlama dilinden makine diline dönüştürmenin iki farklı yolu vardır :
DERLEME - kaynak program bir kez çevrilir (ancak, kaynak kodu her değiştirdiğinizde bu işlem tekrarlanmalıdır), makineyi içeren bir dosya (örneğin, kod MS Windows altında çalıştırılmak isteniyorsa bir .exe dosyası) alınarak tekrarlanmalıdır. kod; şimdi dosyayı dünya çapında dağıtabilirsiniz; bu çeviriyi yapan programa derleyici veya çevirmen denir;
YORUMLAMA - siz (veya kodun herhangi bir kullanıcısı) her çalıştırıldığında kaynak programı çevirebilirsiniz; bu tür bir dönüşümü gerçekleştiren programa, her yürütülmesi amaçlandığında kodu yorumladığı için yorumlayıcı denir; ayrıca kaynak kodu olduğu gibi dağıtamayacağınız anlamına da gelir, çünkü son kullanıcının kodu yürütmek için yorumlayıcıya ihtiyacı vardır.
Bazı çok temel nedenlerden dolayı, belirli bir üst düzey programlama dili bu iki kategoriden birine girecek şekilde tasarlanmıştır.
Hem derlenip hem de yorumlanabilecek çok az dil vardır. Genellikle, bu faktörle birlikte bir programlama dili kurucularının zihninde yansıtılır - derlenecek veya yorumlanacak mı?


Tercüman aslında ne yapar?

Bir kez daha bir program yazdığınızı varsayalım. Şimdi, bir bilgisayar dosyası olarak var : bir bilgisayar programı aslında bir metin parçasıdır, bu nedenle kaynak kodu genellikle metin dosyalarına yerleştirilir Not: Farklı yazı tipleri, renkler, gömülü görüntüler veya diğer ortamlar gibi süslemeler olmadan saf metin olmalıdır Şimdi yorumlayıcıyı çağırmalı ve kaynak dosyanızı okumasına izin vermelisiniz.
Tercüman kaynak kodunu Batı kültüründe yaygın olarak okur: yukarıdan aşağıya ve soldan sağa. Bazı istisnalar var - bunlar derste daha sonra ele alınacaktır.
Her şeyden önce, tercüman sonraki tüm satırların doğru olup olmadığını kontrol eder (daha önce kapsanan dört yönü kullanarak).
Derleyici bir hata bulursa, işini derhal bitirir. Bu durumda tek sonuç bir hata mesajıdır . Tercüman, hatanın nerede olduğunu ve neye neden olduğunu size bildirir. Ancak, bu iletiler yanıltıcı olabilir, çünkü tercüman tam niyetlerinizi yerine getiremez ve hataları gerçek nedenlerinden belirli bir mesafede algılayabilir.
Örneğin, bilinmeyen bir adı olan bir varlığı kullanmaya çalışırsanız, hataya neden olur, ancak hata yeni varlığın adının girildiği yerde varlığı kullanmaya çalıştığı yerde bulunur.
Başka bir deyişle, asıl neden genellikle kodda biraz daha erken bulunur, örneğin, tercümanı adın varlığını kullanacağınızı bildirmek zorunda kaldığınız yerde.



Çizgi iyi görünüyorsa, yorumlayıcı onu yürütmeye çalışır (not: her satır genellikle ayrı ayrı yürütülür, böylece "okuma-kontrol-yürüt" üçlüsü birçok kez tekrarlanabilir - kaynak dosyadaki gerçek satır sayısından daha fazla , kodun bazı bölümleri birden fazla kez çalıştırılabilir).
Yorumlayıcı bir hata bulmadan önce kodun önemli bir bölümünün başarıyla yürütülebilmesi de mümkündür. Bu, bu yürütme modelinde normal davranıştır.
Şimdi sorabilirsiniz: hangisi daha iyi? “Derleme” modeli mi, “yorumlama” modeli mi? Açık bir cevap yok. Eğer olsaydı, bu modellerden biri uzun zaman önce ortadan kalkmış olurdu. Her ikisinin de avantajları ve dezavantajları vardır.

Hiç yorum yok