Dilde sözdizimi, dilbilgisi ve anlambilim arasındaki farkı biliyor musunuz?


cevap 1:

Bence “sözdizimi” ve “dilbilgisi” kelimelerinin dilbilimciler ve bilgisayar bilimcileri tarafından kullanım şekli arasında bir fark olduğunu belirtmek önemlidir.

Bilgisayar bilimcileri, belirli bir sembol dizisinin sözdizimsel olarak geçerli olup olmadığını, yani belirli bir dile ait olup olmadığını belirlemek için bir dizi kuralı adlandırmak için “dilbilgisi” sözcüğünü kullanırlar. Başka bir deyişle, dilbilgisi bazı sözdiziminin bir açıklamasıdır (aynı sözdiziminin birçok alternatif tanımına sahip olabilirsiniz) ve dil, sözdizimsel olarak doğru sembol dizilerinden oluşan bir kümedir. Gramer genellikle Backus-Naur Formunda verilir.

Dilbilimciler dili doğru kullanmak için kurallar dizisini adlandırmak için “dilbilgisi” sözcüğünü kullanırlar. Birçok farklı kural türü vardır ve bu türler arasında sözdizimsel kurallar kelimeleri doğru sıraya koymakla ilgilidir. Dikkate alınması gereken iki şey şu ki (1) evet doğal dili yanlış kullanabilirsin (ve dünya çökmez) ve (2) dilbilimciler genellikle verilen bir cümlenin bir dile ait olup olmadığından endişe etmezler, ancak bunun yerine dillerin nasıl kullanıldığı ile ilgilidir.

Hem dilbilimde hem de bilgisayar biliminde, “anlambilim” kelimesi, sembol dizilerinin nasıl yorumlanması gerektiğini açıklayan bir dizi kuralı ifade eder.


cevap 2:

Sözdizimi: dilin nasıl düzenleneceği. Buna anahtar kelimeler ve noktalama işaretleri yerleşimi de dahildir. Örneğin, Python sözdizimi çeşitli açılardan C sözdiziminden farklıdır, en büyük varlık ifadeleri C'deki noktalı virgülle bitmelidir, oysa Python belirli bir girintinin işlenmesini gerektirir.

Sözdizimi, birçok geliştiricinin ben dahil bir dile olan sevgisini veya nefretini kazandığını göreceğiniz yerdir. PHP ve JavaScript'ten nefret ediyorum - çirkin okurlar, büyük bloklar zevksiz ve gereksiz yere karmaşık hale gelir ve açıkçası, her ikisi de geliştiricilerin çıkarımsal yazım paradigmaları ve kötü uygulamalarla özensizleşmelerine izin verir. Yine de Ruby'yi seviyorum çünkü çok güzel okuyor, içinde biraz daha katı yazım var ve dilin kendisinin nasıl geliştiği nedeniyle bloklar aşırı derecede hantal hale gelmiyor. Dil yapıları, C üzerinde çok önemli bir soyutlama katmanı olmasına rağmen onu zarif bir dil haline getirir.

Dilbilgisi: İfadelerin uygun şekilde sıralanması, böylece anlamlı olur ve mümkün olduğunca minimum hesaplama yükü ile işlenebilir. Son zamanlarda gördüğüm en iyi örneklerden biri, döngüler için iç içe bir çift gibi bir şey basmaktı:

**********

Daha iyi, daha kolay anlaşılır ve hesaplamaya göre daha az ücretli bir yöntem bir dizi printf () ifadesi kullanmak olurdu. İyi programatik dilbilgisi pratikle birlikte gelir ve tüm yeni geliştiriciler basitlik arayışında işleri aşırı karmaşık hale getirme eğilimindedir.

Bu, hedefinize ulaşmanın doğru ve yanlış bir yolu olduğunu söylemek değildir. Her zaman bir kediyi yüzmenin 100 yolu vardır, ancak kabul edilebilir bir Big O notasyonu olan sadece bir avuç vardır ve tipik olarak zarif kabul edilebilecek kadar okunaklı olanlardan sadece birkaçıdır.

Anlambilim: Bir ifadenin amacı, ifadenin gerçek işlevine karşı. Anlambilim hem konuşma dilinde hem de programlamada inanılmaz derecede önemlidir. Fark: Bir kişi, anlambilimleriniz yerinde olsa bile bir ifadeyi yanlış yorumlayabilir. Bilgisayarlar tam olarak yazdıklarınızı çalıştıracak veya tamamen kapalıysa çalışmayacak ve burası mantık hatalarının geldiği yerdir.