SORU
29 Mart 2012, PERŞEMBE


Belirgin çelişkiler zayıf yazılan dil konusunda açıklama isteyen

strong typing ama zayıf ne için örnekler sadece/dönüştürme türleri zorlamak programlama dilleri örnekler bulma otomatik olarak sona yazmak için her baktığımda anladım.

Bu makalede adlı örneğin, Typing: Strong vs. Weak, Static vs. Dynamic Python eğer denerseniz bir istisna olsun, çünkü, kesinlikle yazılan " der

Python

1   "1"
Traceback (most recent call last):
File "", line 1, in ? 
TypeError: unsupported operand type(s) for  : 'int' and 'str'

Ancak, böyle bir şey mümkün Java ve C# ve onları zayıf sırf bu yüzden yazılı olarak görmüyoruz.

Java

  int a = 10;
  String b = "b";
  String result = a   b;
  System.out.println(result);

C#

int a = 10;
string b = "b";
string c = a   b;
Console.WriteLine(c);

Bu başka bir makale Weakly Type Languages adlı kitabın yazarı, Perl sadece bir dizi için bir dize bağlamak ve herhangi bir açık dönüştürme olmadan tam tersi çünkü zayıf yazılı olduğunu söylüyor.

Perl

$a=10;
$b="a";
$c=$a.$b;
print $c; #10a

Aynı örnek Perl zayıf yazılı yapar, ama Java ve C#?.

Vay be, bu enter image description here kafa karıştırıcı

Yazarlar farklı değerler üzerinde bazı işlemler uygulanmasını engelleyen bir dil kesinlikle yazılmış olduğunu ima etmek gibi görünüyor ve tam tersine zayıf yazılı anlamına gelir.

Bu nedenle, bir noktada hissettim istendiğinde buna inanmak eğer bir dil sağlar çok otomatik dönüşüm veya tehdit arasında türleri (perl) Mayıs sonunda varlık olarak kabul zayıf yazılı, oysa diğer diller bu bilgileri sadece bir kaç dönüşümleri Mayıs sonu olmayı kesinlikle yazılmış.

Bu interepretation yanılıyorumdur, ama inanmak eğilimindeyim, ben sadece bunu açıklamak için neden bilmiyorum.

Yani benim sorular şunlardır:

  • Bu gerçekten zayıf yazılı bir dil için ne demek?
  • Otomatik dönüşüm/otomatik baskı dili tarafından yapılan ilgili olmayan zayıf yazarak herhangi bir iyi örnekler söz edebilir misiniz?
  • Bir dil aynı zamanda zayıf yazılı ve şiddetle yazılabilir?

CEVAP
29 Mart 2012, PERŞEMBE


GÜNCELLEME: 11* *harika soru için Teşekkür ederiz!


Gerçekten bir dil için ne demek "zayıf yazılı"?

Bunun anlamı, "bu dil antipatik buluyorum bu tip bir sistemi kullanır". Bir "kesinlikle yazılmış bunun aksine, cana yakın buluyorum bu tip bir sistem ile bir dil" dil.

Şartlar aslında anlamsız ve bunlardan kaçınmak gerekir. Wikipedia listelerOnbir farklı anlamları vardır"kesinlikle yazılmış birkaç çelişkilidir." Bu karışıklık ihtimali oluşturulan yüksek olduğunu gösterir herhangi bir konuşma terimini içeren "kesinlikle yazılmış" ya da "zayıf yazılı".

Tüm bu sen-ebilmek demek olan herhangi kesin bir "kesinlikle yazılmış" dil altında tartışma var bazı ek kısıtlama türü bir sistem de çalışma zamanı veya derleme zamanı, bir "zayıf yazılan" dil altında tartışma yoktur. Bu kısıtlama ne olabileceğini daha fazla içerik olmadan tespit edilemez.

Yerine "kesinlikle yazılmış" ve "zayıf yazılı ne demek istediğini", ayrıntılı olarak tanımlamak gerekir. Örneğin, C# birstatik olarak yazılmışDil vetürü güvenliDil vebellek güvenlidil,çoğunlukla. C# "güçlü" ihlal edildiğini yazarak. bu formları her üç sağlar Döküm operatörü statik yazma ihlal; derleyici der: "senden bu ifade çalışma zamanı türü hakkında daha çok şey biliyorum". Eğer geliştirici yanlış ise, çalışma zamanı tür güvenliği korumak için bir istisna atar. Eğer geliştirici tür güvenlik veya bellek güvenliği bozmak isterse, bunu bir "" blok. güvensiz yaparak tür güvenlik sistemini devre dışı bırakarak yapabilirsiniz Güvensiz bir blok işaretçisi sihirli bir şamandıra gibi bir int tedavi etmek için kullanabilirsiniz (tür güvenliği ihlal eden) veya bellek yazma, sana ait değil. (İhlal bellek Emanet.)

C# uygular tür kısıtlamalar vardır kontrol hem derleme zamanı ve çalışma zamanı, böylece yapım o bir "kesinlikle yazılmış" dilini göre dil bunu daha az derleme zamanı kontrol etmek ya da daha az çalışma zamanı kontrol. C# da verir sana özel durumlardan bir end-run etrafında bu kısıtlamalar, bir "zayıf yazılan" dil ile karşılaştırıldığında dilleri olan izin vermediği için böyle bir son çalıştırın.

Gerçekten mi? Bunu söylemek imkansız; hoparlörün görünümü ve çeşitli dil özelliklerini tutumunu noktasına bağlıdır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009