SORU
8 HAZİRAN 2010, Salı


Eğer Python yorumlanır, nedir .dosyaları bilim?

Python yorumlanan bir dil olduğunu anlamak için verildi... Python kaynak kodu baktığımda ancak, görüyorum .Windows olarak tanımlayan bilim dosyalar, "Derlenmiş Python Dosyaları". Nerede bu var mı?

CEVAP
8 HAZİRAN 2010, Salı


Bunu anlamak için verildi Python yorumlanan bir dil

Bu popüler mem yanlış, ya da, daha doğrusu, bir (doğal) yanlış anlama üzerine inşa dil seviyeleri: benzer bir hatayı söylemek olurdu "Kutsal Kitap ciltli bir kitap". Bana bu benzetme... açıklamama izin verin

"İncil" "bir" olma duygusu . bir kitaptır ^strong>sınıf(gerçek, fiziksel nesneler olarak tanımlanan kitap, kitap olarak tanımlanan "kopya İncil" olması gerekir bir şeyin temel ortak (içeriğini, olsa bile bu olabilir, farklı diller, farklı, kabul edilebilir çeviriler, seviyeleri dipnotlar ve diğer açıklayıcı) -- ancak, bu kitap çok iyi izin için farklı sayısız yönleri vardırdeğilkabul temel bir bağlayıcı, renk bağlama, yazı tipi(ler) kullanılan baskı, çizimler varsa, geniş yazılabilir boşlukları ya da değil, sayılar ve her türlü yerleşik imleri, ve benzeri, ve benzeri.

Bir yüksek bir ihtimaltipikbaskı İncil olurdu doğrusu içinde ciltli bağlama -- sonuçta, bu kitap bu genellikle olması gerektiği gibi, okumak tekrar tekrar, sık çeşitli yerlerde kullanılmış bakarak verilen bölüm ve ayet göstericiler, vs, vs, Ve bir güzel ciltli bağlama yapmak belirli bir kopya daha uzun ömürlü altında gibi. Ancak, verilen bu kitap gerçek bir nesne İncil bir kopyası olup olmadığını belirlemek için kullanılamaz (pratik) dünyevi sorunlar şunlardır: ciltsiz baskı mükemmel mümkün!

Benzer şekilde, Python" bir sınıf tanımlama anlamında. "bir dildiluygulamalarıbu kadar benzer bazı temel konularda (sözdizimi, anlambilim en müstesna parçaları olanlar nerede olduklarını açıkça izin için farklı) ama tam olarak izin için farklı hemen her "uygulama" ayrıntı dahil, nasıl bir anlaşma ile kaynak dosyaları bunlar dikkate alındığında, ister derleme kaynakları için bazı alt düzey formlar (ve eğer öyleyse, hangi tip olsun onlar kurtarmak gibi derlenmiş formları, disk ya da başka bir yerde), nasıl yaparlar söyledi formları, ve benzeri.

Klasik uygulama, CPython, genellikle sadece "Python" için kısa-ama sadece bir kaç üretim-kalite uygulamaları, yan yana Microsoft IronPython (derler için CLR kodları, yani, ".NET"), Jython (derler için JVM kodları), PyPy (yazılmış Python kendisi ve derlemek için bir çok çeşit "arka uç" formları da dahil olmak üzere "tam zamanında" oluşturulan makine dili). Python hepsi (==çok yüzeysel farklı kitap nesneleri İncil olabilir gibi"Python programlama dilinin uygulamaları") (=="İncil'in kopyalarını").

Eğer ilgileniyorsanız CPython özellikle: derler kaynak dosyaları içine bir Python özel alt düzey bir form (bilindiği gibi "Java"), otomatik olarak gerekli olduğunda (zaman yok bayt kodu dosyası ile ilgili bir kaynak dosyası veya bayt kodu dosyası daha eski kaynak veya derlenmiş farklı bir Python sürümü), genellikle kaydeder bayt kodu dosyaları için disk (önlemek için yeniden onları gelecekte). OTOH IronPython genelde derleme CLR kodları (onları kurtarmak için disk ya da değil, bağlı olarak) ve Jython için JVM kodları (onları kurtarmak için disk veya ... ... kullanacak .class uzatma yaparsa kaydetmek).

Bu alt düzey formlar daha sonra "sanal makine" de "yorumcu" CPython VM,. olarak bilinen uygun yürütür Net çalışma zamanı, Java VM (aka JVM), uygun olarak.

Yani, bu anlamda (ne tipik uygulamaları yapmak), Python bir "yorumlanmış dil" Eğer ve sadece eğer C# ve Java: bunların hepsi var tipik bir uygulama stratejisi üreten ilk bayt, sonra da yürütme ile bir VM/tercüman.

Daha odaklanmak", yavaş ve yüksek törenine derleme işlemi. ağır CPython için tasarlanmıştır derlemek mümkün olduğunca hızlı, basit olarak mümkün olduğu gibi küçük bir tören olarak uygulanabilir -- derleyici yapar çok az hata denetimi ve Optimizasyonu, koş hızlı ve küçük miktarda hafıza, döner hadi be run otomatik olarak ve şeffaf bir şekilde gerektiğinde, kullanıcı olmadan bile gerek problemler yaşanır bir derleme oluyor, çoğu zaman. Java ve C# hataları daha kapsamlı bir kontrol ve daha fazla iyileştirmeler yapmak için genellikle derleme (ve bu nedenle otomatik derleme yapma) sırasında daha fazla çalışma kabul. Bu bir süreklilik gri ölçekler, siyah ya da beyaz durum, ve olur tamamen keyfi bir eşik bazı belirli düzeyde ki sadece yukarıda bu seviye dediğiniz bu "derleme"!-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • graham025

    graham025

    25 NİSAN 2006
  • Krumme1996

    Krumme1996

    21 EYLÜL 2009
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009