Arka fon
Syntactic Sugar hakkındaki Wikipedia sayfası :
Bilgisayar bilimlerinde sözdizimsel şeker, bir şeyleri okumayı veya ifade etmeyi kolaylaştırmak için tasarlanmış bir programlama dili içinde sözdizimidir. Dili, insanların kullanması için "daha tatlı" kılar: işler daha net, daha özdeş ya da bazılarının tercih edebileceği alternatif bir tarzda ifade edilebilir.
Sözdizimsel Şeker ile Sözdizimi arasındaki farkın ne olduğunu gerçekten anlamıyorum.
Şekerli versiyonun daha net, daha özlü, belki de bir kazandan kaynaması olabileceğinin farkındayım. Ancak bazı seviyelerde hissediyorum, tüm sözdizimi, kodun neyin derlendiğine dair bir soyutlama oluşturmak için temelde bunu yapıyor.
Aynı Vikipedi sayfasından:
Derleyiciler, statik analizörler ve benzerleri dahil olmak üzere dil işlemcileri, genellikle "çürütme" adı verilen bir işlem olan şekerli yapıları işlemden önce daha temel yapılara genişletir.
Bir düşünce alıştırması olarak, bu ifadede "sık sık" alırsam "her zaman" anlamına gelir: Eğer fark sadece derleyicinin bir sonraki aşamaya geçmeden önce sözdizimini "terk etmesine" izin verip vermemesiydi? Derleyiciden biliyoruz ya da umurunda Sugar'dekiler nedir ya da değil mi?
Bu sitede çok ilgili bir soru "Sözdizimsel Şeker titiz tanımı?" Başlayan bir cevabı var:
IMHO Sözdizimsel şeker için bir tanımınız olduğunu düşünmüyorum, çünkü cümle BS ve muhtemelen "gerçek işletim sistemlerinde" "gerçek araçlar" kullanan "gerçek programcılar" hakkında konuşan insanlar tarafından kullanılıyor.
Hangi bana belki dili kullanan kodlayıcıda çok büyük bir fark olmadığını söyleyebilir? Belki de fark sadece derleyici yazar tarafından algılanabilir? Sözdizimi Syntaktik Şeker'in kapağının altında ne olduğunu bilmek için dili kullanan kodlayıcı için faydalı olabilecek durumlar olsa da? (Fakat belki de gerçekte konuyla ilgili herhangi bir söylem, terimi alevli yem olarak kullanma eğilimindedir?)
Sorunun kalbi
Yani ... Sorunun kısa versiyonu:
- Sözdizimi ve Sözdizimsel Şeker arasında gerçek bir fark var mı?
- Kim için önemli?
Düşünce İçin Ekstra Yiyecek
Konu çelişkileri için bonus:
Wikipedia sayfasında bir örnek verilmiştir:
Örneğin, C dilinde
a[i]
gösterim, sözdizimsel şekerdir.*(a + i)
Yukarıdaki bağlantılı soruya bir başka cevap ise aynı örnekten bahseder:
Şimdi düşünün
a[i] == *(a + i)
. Dizileri herhangi bir şekilde kullanan herhangi bir C programını düşünün.
Ve şunu özetler:
[]
Notasyonu bu soyutlama kolaylaştırır. Sözdizimsel şeker değil.
Aynı örnek için ters sonuç!