PHP derlenmiş veya yorumlanır?
PHP dili yorumlanır. PHP yorumlamak sağlayan ikili derlenmiş, ama ne yazmak yorumlanır.
Daha on the wikipedia page for Interpreted languages görebilirsiniz
Bir programlama dili bir tanımı bir "derlenmiş" ya da biri kendi tasarımına dayanan uygulamak çok daha kolay olabilir olsa bile formu "yorumlanamaz" zorunlu değildir. Teorik olarak siz de bir C tercüman ve bir Python derleyici yazabilirsiniz.
Ve terimler bu soruya verilen cevaplar farklı şeyler atfedilen "derlenmiş / yorumlanır". Anlayamadığım zerdüştlerin PHP uygulama yerli koduna derlenmiş ya da değil, ve cevap hayır ise neden soruyorsunuz olduğunu. PHP kodu bayt koduna dönüştürülür ve bir motor tarafından yorumlanır, doğrudan CPU tarafından yürütülür.
Ama daha da önemlisi, çok anlamına gelmez. Bir performans açısından merak çünkü bu soruyu soruyor. PHP hızlı veya yavaş, derlenmiş ve yorumlanmış durumuna göre olup olmadığını bilmek istiyorum. Bu yeni başlayanlar tarafından yapılan yaygın bir hatadır. Örneğin, bir kötü derlenmiş program ince uygulanan tercüman çok daha yavaş olabilir. Kötü bir zamanı veya kütüphane yavaş tercüman tarafından dövüldüğü için yeterince yerli kod halsiz yapabilirsiniz.
Eğer bir acemi ama tabii çok başka şeyler umurumda olabilir belirtilen çünkü ben senin nokta performansı olduğu varsayılır. Yerli kodu da tersine mühendislik zor hale getirir. Ancak ben performans yolda kalmak istiyorum.
Native kod çoğunlukla hesaplama yararlı olur. Ne yapmak arasındaki küçük mantığı ile (müşterinin soket akışına yazmak, veri çekme, MySQL sunucuya bağlanmak) sistem çağrıları yalnızca bir liste ise web sayfaları hizmet veren, performans farkı aslında yerli ve derlenmiş kod arasındaki küçük olabilir.
Yerli hemen hemen her zaman daha hızlıdır ancak bu değiş tokuş kararlar vb kolay dağıtım / bakım, daha az bellek ayak izi, basit çapraz platform uyumluluğu, dinamik tip sistemi, çalışma zamanı iyileştirmeleri gibi yorumundan başka faydaları elde etmek için yapılır
Son bir not olarak, orada adı verilen bir PHP derleyici phc.
Her ikisi de. PHP sonra çalışma zamanı altyapısı tarafından yorumlanır bir ara baytkoduna aşağı derlendi.
PHP derleyici işi PHP kodu ayrıştırmak ve zamanı altyapısı için uygun bir forma dönüştürmek olduğunu. Onun görevleri arasında:
PHP kurulumuna bağlı olarak, bu adım genellikle, sadece bir kez komut denir ilk defa yapılır. Derleyicisi çıkışı daha sonraki kullanımına erişimi hızlandırmak için önbelleğe alınır. Script olarak ise, ancak, derleme adımı tekrar yapılır.
Çalışma zamanı altyapısı komut denir AST ve bayt kodu yürüyor. Sembol tablosu değişkenlerin değerlerini saklamak ve işlevleri için bytecode adreslerini sağlamak için kullanılır.
Baytkoduna derleme ve zamanında onu yorumlamanın Bu süreç, Perl, Java, Ruby, Smalltalk, ve diğerleri dahil olmak üzere sanal zamanı makinenin bazı çalılşabilmektedir diller için tipiktir.
Bu anlamsız bir sorudur. PHP sadece GCC gibi, Yacc (bizon) kullanır. yacc bir "derleyici derleyici" dir. Yacc çıkışı bir derleyici. Bir derleyici çıktısı "derlenmiş" dir. PHP yacc çıkışı ile ayrıştırılır. Bu yüzden, tanımı gereği, derlenir.
Bu tatmin etmezse, aşağıdakileri dikkate alın. Hem php (ikili) ve gcc kaynak kodunu okumak ve soyut sözdizimi ağacı üretmek. Sürümleri 4 ve altında 5, php ardından baytkoduna programı (derleme adımı) çevirmek için ağaç yürür. Sen Vulcan Logic Dumper kullanarak (montaj benzer olan) opcodes çevrilmiştir bayt kodunu görebilirsiniz. Son olarak, php (özellikle, Zend motoru) bayt kodunu yorumlar. gcc, karşılaştırma, ağaç ve çıkışlar montaj yürür; aynı zamanda işlemini bitirmek için Birleştirici ve Bağlayıcılar çalıştırabilirsiniz. Biri tarafından ele program çağrı "yorumlanır" ve diğer tarafından ele başka bir program "derlenmiş" anlamsız. Sonuçta, programlar hem de hem de bir "derleyici" aracılığıyla çalıştırılır.
Aslında yerine sormak istediğiniz soruyu sormalısınız. ("PHP her istek için benim kaynak kodu yeniden derler gibi bir performans ceza ödemek musunuz?", Vb)
Derleyiciler ve tercümanlar geleneksel sınıflandırmaları bulanık just-in-time derleme ve bayt durumunda interpretation.PHP sözdizimi denetimi, ara kod üretimi ve optimization.PHP gerçekleştirmek PHP compiled.PHP derleyici olmadığı anlamına gelmez interpreted.But olduğunu PHP derleyici oluşturur nesne kodu başka önderlemeli yerli binary.Which (talimatlar montajcı, başka hiçbir dil olarak ilk talimatı execution.Because vadede montaj dil olarak olabilir neden okunabilir instruction.Thats CPU ara kodunu yorumlar tarafından ayrıştırılır çünkü yorumlanır montaj derleyici) üretmek cpu var zaten.
Yorumlanan dil programları 'dolaylı' bir tercüman programı ("yorumlanır") idam edildiği bir programlama dilidir. Bu makine koduna dönüştürülür ve ardından 'doğrudan' ev sahibi CPU tarafından yürütülen derlenmiş bir dil ile tezat olabilir. Teorik olarak, herhangi bir dil derlenmiş ya da yorumlanabilir, bu nedenle bu atama nedeniyle yaygın uygulama uygulama değil, bir dilin bazı temel özelliğinin tamamen uygulanır olabilir. Nitekim, bazı programlama dilleri, bunların uygulanması için bir yorumlayıcı veya derlenmiş-temelli yaklaşım arasında çok az performans farkı yoktur.