«language-design» etiketlenmiş sorular

Programlama dillerinin tasarım ve yapısını içeren sorular.

22
Boş referanslar gerçekten kötü bir şey midir?
Programlama dillerinde boş referansların bulunmasının "milyar dolarlık hata" olduğunu söylemiştim. Ama neden? Tabii, NullReferenceExceptions'e neden olabilirler, peki ne olmuş? Dilin herhangi bir unsuru, eğer yanlış kullanılırsa bir hata kaynağı olabilir. Ve alternatif nedir? Sanırım bunu söylemek yerine: Customer c = Customer.GetByLastName("Goodman"); // returns null if not found if (c != …

14
Neden çoğu programlama dili fonksiyondan sadece tek bir değer döndürmeyi destekliyor? [kapalı]
Çoğu (?) Programlama dilindeki fonksiyonların herhangi bir sayıda giriş parametresini değil, sadece bir dönüş değerini destekleyecek şekilde tasarlanmasının bir nedeni var mı? Çoğu dilde, bu sınırlamayı "dış parametreler kullanarak, işaretçileri döndürerek veya yapı / sınıfları tanımlayarak / geri getirerek" çözmek mümkündür. Ancak programlama dillerinin çoklu dönüş değerlerini daha "doğal" bir …

14
Neden 0 yanlış?
Bu soru dilsiz gelebilir, ama neden yok 0etmek değerlendirir falseve başka bir [tamsayı] değer trueprogramlama dillerinin en çok? Dize karşılaştırması Soru biraz fazla basit göründüğü için, kendimi biraz daha açıklayacağım: Her şeyden önce, herhangi bir programcıya açık gelebilir, ama neden bir programlama dili olmasaydı - aslında olabilir, ama hiçbiri Ben …

6
XML neden tam olarak “dil” olarak adlandırılıyor?
XML'in neden L adında olduğunu merak ediyorum. Kendi başına, XML hiçbir şey "yapmaz". Bu sadece bir veri depolama formatı, dil değil! Diller işleri "yapar". XML'i "yapma" işlemlerini yapma, onu doğru bir dile çevirme xmlns, kök elemanına özellikler eklemektir . Ancak o zaman çevresine ne hakkında olduğunu söyler. Bir örnek, XHTML'dir. …

12
İstisnaların yalnızca istisnai durumlarda kullanılması gerektiği söylendi. Davamın istisnai olup olmadığını nasıl bilebilirim?
Buradaki özel durum, kullanıcının bir dizgeyi uygulamaya geçirebilmesidir, uygulama onu ayrıştırır ve yapılandırılmış nesnelere atar. Bazen kullanıcı geçersiz bir şey yazabilir. Örneğin, girişleri bir kişiyi tanımlayabilir, ancak yaşlarının “elma” olduğunu söyleyebilirler. Bu durumda doğru davranış işlemi geri alır ve kullanıcıya bir hata olduğunu bildirir ve tekrar denemeleri gerekir. Girişte bulabildiğimiz …


30
PHP'de hangi özelliklere sahip olmak istersiniz? [kapalı]
Şimdi tatil mevsimi olduğu ve herkesin dilek tuttuğu için merak ediyorum - PHP'nin hangi dil özelliklerini eklemesini isterdiniz? Dil için bazı pratik öneri / dileklerimle ilgileniyorum. Pratik olarak demek istediğim: Pratik olarak yapılabilecek bir şey (değil: "PHP kodumun ne anlama geldiğini ve benim için hataları düzeltmesini diliyorum" veya "5ms altında …

11
Java geliştiricileri bilinçli olarak RAII'den vazgeçti mi?
Uzun zamandır bir C # programcısı olarak, yakın zamanda Kaynak Edinimi Başlatma'nın (RAII) avantajları hakkında daha fazla şey öğrenmeye başladım . Özellikle, C # deyiminin olduğunu keşfettim: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } C ++ eşdeğeri var: { DbConnection dbConn(connStr); // do stuff …
82 java  c#  c++  language-design 

10
Eğer boş ise, neden modern diller onu uygular? [kapalı]
Java veya C # gibi dil tasarımcılarının boş referansların varlığına ilişkin sorunları bildiğinden eminim (bkz. Boş referanslar gerçekten kötü bir şey mi? ). Ayrıca bir seçenek türü uygulamak, boş başvurulardan çok daha karmaşık değildir. Neden yine de dahil etmeye karar verdiler? Boş referansların bulunmamasının hem dil yaratıcılarından hem de kullanıcılardan …



14
Aritmetik Taşma neden ihmal edilir?
Hiç favori programlama dilinizdeki 1 ila 2.000.000 arasındaki tüm sayıları toplamaya çalıştınız mı? Sonuç elle hesaplamak kolaydır: işaretsiz bir 32bit tamsayının maksimum değerinden 900 kat daha büyük olan 2,000,001,000,000. C # yazdırır -1453759936- negatif bir değer! Ve sanırım Java da aynı şeyi yapıyor. Bu, varsayılan olarak Aritmetik Taşma'yı görmezden gelen …

9
Neden kısmi sınıflar kullanılıyor?
Anladığım kadarıyla, partialanahtar kelime bir sınıfın birkaç kaynak dosya arasında bölünmesine izin vermekten başka bir şey yapmaz. Bunu kod organizasyonu dışında yapmak için herhangi bir sebep var mı? Bunun için oluşturulan UI sınıflarında kullanıldığını gördüm. Tam bir anahtar kelime oluşturmak için kötü bir neden gibi görünüyor. Bir sınıf birden fazla …

8
Bazı dil toplulukları (örneğin, Ruby ve Python) diğerleri (örneğin, Lisp veya ML) olmasa da parçalanmayı nasıl önleyebilirdi?
"Lisp" (veya "Lisp benzeri") terimi, Common Lisp, Scheme ve Arc gibi birçok farklı dil için bir şemsiyedir. ML'de olduğu gibi diğer dil topluluklarında da benzer parçalanma var. Ancak, Ruby ve Python, dilde değişiklik yapmak yerine, uygulamada yenilikçiliğin (PyPy veya YARV gibi) daha fazla gerçekleştiği bu kaderden kaçmayı başardı. Ruby ve …

10
Sözdizimi Tasarımı - Neden hiçbir argüman iletilmezse parantez kullanılır?
Birçok dilde, sözdizimi function_name(arg1, arg2, ...)bir işlevi çağırmak için kullanılır. Fonksiyonu herhangi bir argüman olmadan çağırmak istediğimizde yapmalıyız function_name(). Bir derleyici veya komut dosyası yorumlayıcısının ()onu işlev çağrısı olarak başarılı bir şekilde algılaması gerekebileceğini garip buluyorum . Bir değişkenin çağrılabilir olduğu biliniyorsa, neden function_name;yeterli olmaz? Öte yandan, bazı dillerde yapabiliriz: …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.