SORU
22 NİSAN 2010, PERŞEMBE


Türü kesin belirlenmiş bir dil ve bir statik olarak yazılan dil arasındaki fark nedir?

Ve bir diğer anlamına mı gelir?

Teşekkür ederim!

CEVAP
23 NİSAN 2010, Cuma


Türü kesin belirlenmiş bir dil ve bir statik olarak yazılan dil arasındaki fark nedir?

Statik olarak yazılan bir dil uygulaması tarafından derleme zamanında (derleyici veya yorumlayıcı) kontrol edilir bu tip bir sistemi vardır. Türünü kontrol edin bazı programlar reddeder, ve genellikle kontrol pas programları bazı garanti ile geliyor; örneğin, derleyici kayan noktalı sayıları tamsayı aritmetik talimatları kullanmamayı garanti eder.

Yok gerçek anlaşma ne "kesinlikle yazılmış" anlamına gelir, ancak en yaygın olarak kullanılan tanımında profesyonel edebiyat olan bir "kesinlikle yazılmış" dil, mümkün değildir programcı için geçici kısıtlamalar empoze ederek bu tür sistemi. Bu terim hemen hemen her zaman statik olarak yazılan dilleri tanımlamak için kullanılan bir terimdir.

Statik vs dinamik

Statik olarak yazılan tersidir "olarak adlandırılır.",

  1. Değerleri çalışma zamanında kullanılan türde sınıflandırılır.
  2. Bu değerleri nasıl kullanılabileceği ile ilgili kısıtlamalar vardır.
  3. Bu kısıtlamaları ihlal edildiğinde, ihlali (dinamik) tipi bir hata olarak bildirilir.

Örneğin, Lua, bir dinamik olarak dil, dize türü vardır, bir sayı yazın ve bir Boolean türü, diğerleri arasında yazılmış. Lua her değer aittirtam olarakbir tür, ama bu herkes için bir gereksinim değil dinamik olarak yazılan dil. Lua, iki dizeyi birbirine bağlamak için izin verilir, ama izin verilen bir dize ve bir Boolean bağlamak için değil.

Güçlü vs zayıf

"Kesinlikle yazılmış" "zayıf yazılı tür sistemi geçici bir çözüm bulmak anlamına gelir.", tersidir C korkuncu ise zayıf herhangi bir işaretçi türü sadece döküm tarafından başka bir işaretçi türü için üstü açık olduğu için yazılmış. Pascal kesin belirlenmiş olacaktı, ama tasarımında bir yanlışlık (varyant kayıtları etiketsiz) türü sisteme bir kaçamak, zayıf yazılı o yüzden teknik olarak tanıttı. Gerçekten şiddetle dillere yazılı örnekleri CLU, Standart ML ve Haskell vardır. Standart ML aslında birkaç düzeltme İngilizce yaygın olarak dağıtılmıştır sonra bulunmuş türü sistemindeki boşlukları kaldırmak için uğramıştır.

Gerçekten burada neler oluyor?

Genel olarak, hakkında konuşmak için değil, yararlı olduğu ortaya çıkıyor "" ve "". zayıf güçlü Sistemin bir açığı vardır, Bir tür boşluklar tam sayı ve doğa daha az önemli olup olmadığını, nasıl pratikte hemen gelip onlar, ne bir kaçamak istismar sonuçlarıdır. Uygulamadaiyi şartlarda "" ve "zayıf" tamamen . güçlü önlemek içinçünkü

  • Amatörler genellikle onları conflate ile "" ve "". dinamik statik

  • Görünüşe göre "zayıf yazarak" örtülü dönüşüm göreli sıklığının ya da yokluğu hakkında konuşmak bazı kişiler tarafından kullanılır.

  • Profesyoneller açısından yani tam olarak kabul edemeyiz.

  • Genel ya da hedef kitlenizi bilgilendirmek aydınlatmak için olası değildir.

Acı gerçek şu ki yazın sistemleri söz konusu olduğunda, bu"güçlü" ve "zayıf" evrensel olarak kabul edilen teknik bir anlamı yok.Eğer yazın sistemleri göreceli gücünü tartışmak istiyorsanız, garanti tam olarak tartışmak iyidir verilmez. Örneğin, sormak için iyi bir soru şudur: belirli bir türün her değeri (veya sınıf) "bu tip kurucular çağıran biri tarafından yaratılmış olması garanti mi?" C cevap hayır. Bu Haskell, F#, CLU ve evet. C emin-ben değil, bilmek istiyorum.

Buna karşılıkstatik yazmabu programlar anlamına geliridam edilmeden önce kontrol ettibir program başlamadan önce reddedilmiş olabilir.Dinamik yazarakbu tür anlamına gelirdeğerlerdenetlenirsırasındayürütme ve kötü yazılmış bir çalışma programı durdurmak veya başka çalıştırma sırasında bir hata sinyali neden olabilir. Statik yazarak bir nedenden dolayı böyle olabileceğini programları ekarte etmek için "dinamik tip hataları".

Bir diğer anlamına mı gelir?

Bilgiçlik taslayan bir düzeyde, hayır, "güçlü" gerçekten hiçbir şey ifade etmiyor. çünkü kelime üzerinde Ama pratikte, insanlar hemen hemen her zaman iki şeyden birini yapın:

  • Bunlar (yanlış) kullan "güçlü" ve "zayıf" demek "statik" ve "dinamik" ve bu durumda, onlar (yanlış) kullanarak "kesinlikle yazılmış" ve "statik olarak yazılan" birbirlerinin yerine.

  • "" Ve "zayıf" statik tip sistemlerin özellikleri karşılaştırın. güçlü kullanıyorlar Çok nadir birisi "" veya "zayıf" dinamik tip sistemi. güçlü hakkında konuşmak duymak Gerçekten tip bir sistemi herhangi bir sıralama yok ki İLERİ, hariç, tür sistemi altüst olabilir dinamik olarak yazılan bir dil düşünemiyorum. Tür tanımı gereği, bu çekleri icra motoruna bulit ve her işlemi idam edilmeden önce, aklı teslim alır.

Eğer bir kişi bir dil "güçlü", o kişi bir statik olarak yazılan dil. söz olması muhtemeldir çok yazılan ararsa ya da böyle,

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • Easy Learn Tutorial

    Easy Learn T

    10 Kasım 2012
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006