*

şükela:  tümü | bugün
  • derleyici diye gecer turkcesi.. source kodu alip object koda donu$turen programlara denir.. (bkz: object code).. bunlarin cogu ayni anda linking'i de ustlenirler.. (bkz: linking)
  • herhangi bir programlama dili ile yazılmış bir bilgisayar programını, bilgisayarın kendi diline çeviren program*
  • c pascal basic gibi yuksek seviye proglama diliyle yazilmi$ kaynak kodu,makine dilinde bir nesneye ya da derlenmi$ bir programa donusturen bir yazilim araci.
  • (bkz: gcc)
  • ne kadar yanlış yaptığınızı göstermek için dizayn edilmiş program. bir nevi bilgisayar ortamındaki anneniz.
  • yüksek seviyedeki bir dilden daha alçak seviyedeki bir dile dönüşümü sağlayan programlar.. bu alçak seviye dil hemen her zaman makine dili olsa da aslen öyle olmak zorunda değildir..
  • onsuz is yapmanin hucreleri uhuyla yapistirararak insan yapmaktan farksiz olmasina, ama verdigi hata satirlarinin alakasizligi durumunda disinizi monitore saplayip elektrik carpilmasina yol acan arac... kardesim 57 satir yukardaki "{" hatasini niye burada bos satirda veriyosun??...
  • kaynak kodunun lexical analysis ve syntactic analysis islemlerinden gecirdikten sonra (bkz: parser) syntax tree ureten ve bu syntax tree ile object code ortaya cikaran program.
  • syntactic analysis ile üretilen parse tree ler, intermediate code generator diye bi bolume ugrarlar. bu bolum assembly tarzında ama az biraz daha yuksek bi dil üretir. ayrıca içinde semantic analyzer diye bi sey de mevcuttur ki bu da syntactic analysis de gozden kacan daha dehliz hataları kontrol eder. bi de kimi compilerlarda optimization söz konusudur; bu işlem compile etmeyi uzatsa da execution da avantaj saglatır diye söylentiler dolaşır. her neyse, bu intermediate code generator dan çıkan intermediate code en son olarak code generator a gelir ve makina diline cevrilir.
  • bir programlama dilinin ne kadar yüksek seviyeli* olduğunu anlamak için o dilin derleyicisine bakılabilir. derleyici, verilen kaynak kod*u yürütülebilir* hale getirene kadar ne kadar ter akıtıyorsa, o dil o kadar yüksek seviyeli denilebilir.
    örneğin assembly derleyicisi yazamazsınız, çünkü assembly o kadar düşük seviyeli*** bir dildir ki, bir derleyicinin yapabileceği pek birşey yoktur. assembly dilinin yürütülebilir bir programa çevrilmesi süreci bir assembler tarafından yapılır ve yapılan iş basitçe her assembly satırının karşılıkları olan instruction'lara çevrilmesidir. assembler'ın ürettiği bu object code'lar linker'dan geçtikten sonra yürütülebiliriniz hazırdır.
    buna karşılık, mesela c'de, basit bir işlev* çağırma işinin bile makine dili*'ne çevrilmesi sürecinde derleyicinin yapması gerek şeyler vardır.
    c++'ta bulunan nesne ve sınıfların data-code kısımlarının ayrılması, beklenen görevleri yapacak makine kodunun oluşturulması gerekir.* bu ve bunun gibi, bir dille makine dili arasına giren süreçler*, dili daha bi yüksek seviyeli yapar.
    java'ya bakarsak, o zaten allahlık diyebiliriz çünkü gerçek bir derleyiciye uğramaz. java derleyicisinin amacı bir yürütülebilir üretmek değil, bir yorumlayıcı* tarafından yorumlanması daha kolay olsun diye, kaynak kodu gerekli kontrollerden geçirilmiş bir byte code haline getirmektir. bununla birlikte java, makine diline çevirilmek zorunda kalmadığı için programcıya bir çok rahatlık getirir ama, bir yorumlayıcıdan* geçtiği için de çalışma anı*nda yavaştır.
    .net*'te de olay javadaki gibidir. vb olsun c# olsun vc++ olsun .net ortamındaki tüm dillerin, kendilerine has birer derleyicileri vardır. bu derleyiciler de aynı javada olduğu gibi yürütülebilir üretmek yerine ara dil* adlı ortak bir byte code hazırlarlar. çalıştırıldığı makinede de bu byte code, anlık olarak çalıştırıldığı makinenin türüne göre şipşak derleyici* tarafından makine diline çevrilir ve öyle çalıştırılırlar.

    özetlemek gerekirse compiler, programcıyla işlemci arasındaki kıymetli elçidir.

    (bkz: dot net framework) (bkz: java runtime) (bkz: jit compiler) (bkz: assembly) (bkz: high level assembly)