Dildə sintaksis, qrammatika və semantika arasındakı fərqi bilirsinizmi?


cavab 1:

Düşünürəm ki, dilçilər və kompüter alimləri tərəfindən "sintaksis" və "qrammatika" sözlərinin işlədilməsi arasında fərq var.

Kompüter alimləri "qrammatika" sözündən müəyyən simvollar ardıcıllığının sintaktik cəhətdən etibarlı olub olmadığını, yəni müəyyən bir dilə aid olub-olmadığını müəyyənləşdirən qaydalar toplusunu təyin etmək üçün istifadə edirlər. Başqa sözlə, bir qrammatika bir sintaksisin təsviridir (eyni sintaksisin bir çox alternativ təsvirinə sahib ola bilərsiniz) və bir dil bir sıra sintaktik cəhətdən simvollar ardıcıllığından ibarətdir. Qrammatika çox vaxt backus-naur şəklində verilir.

Dilçilər dilin düzgün istifadə qaydalarını göstərmək üçün "qrammatika" sözündən istifadə edirlər. Fərqli qaydalar çoxdur və bu növlər arasında sintaktik qaydalar sözləri düzgün qaydada qoymaqla məşğuldur. Unutmamalı olan iki şey bunlardır: (1) Bəli, təbii dildən səhv istifadə edə bilərsiniz (və dünya dağılmır) və (2) Dilçilər, ümumiyyətlə, bir dil haqqında müəyyən bir cümlənin olub-olmaması barədə tamamilə narahat deyillər. eşitdim amma dillərin istifadəsi ilə məşğul oluruq.

Həm dilçilikdə, həm də kompüter elmində "semantika" sözü simvollar ardıcıllığının necə şərh olunacağını izah edən bir sıra qaydalara aiddir.


cavab 2:

Sintaksis: Dil necə yaradılmalıdır? Buraya açar sözlər və durğu işarələrinin yerləşdirilməsi daxildir. Məsələn, Python sintaksisi C sintaksisindən bir neçə cəhətdən fərqlənir. Əsas ifadələr C-də nöqtəli vergül ilə bitməlidir, Python müəyyən şifrələrin işlənməsini tələb edir.

Sintaksisdə bir çox inkişaf etdiricinin, o cümlədən özümün bir dilə olan sevgisini və ya nifrətini qazandığını tapa bilərsiniz. Mən PHP və JavaScript-yə nifrət edirəm - çirkin oxuyurlar, böyük bloklar cəlbedici və lazımsız mürəkkəb hala gəlir və səmimi olaraq hər iki tərtibatçı əldə edilmiş yazı paradiqmaları və pis təcrübələri ilə səliqəli olmağa imkan verir. Yenə də Rubyi çox sevirəm, çünki oxuduğunuz üçün biraz daha ciddi yazın və bloklar həddən artıq çətin olmur, çünki dil özü inkişaf etdirilib. Dil qurucuları onu zərif bir dil halına gətirir, baxmayaraq ki C üzərində çox vacib bir abstraksiya təbəqəsidir.

Qrammatika: Təlimatların düzgün qaydası, beləliklə mənalı olmaları və ən az hesablama səyləri ilə işlənə bilməsi. Bu yaxınlarda gördüyüm ən yaxşı nümunələrdən biri, bir şey çap etmək niyyəti ilə döngələr üçün yuva qoyulmuş cüt idi:

**********

Daha yaxşı, başa düşülən və daha az hesablama metodu bir sıra printf () ifadələrini istifadə etmək olardı. Yaxşı proqramlı qrammatika təcrübə ilə gəlir və bütün yeni tərtibatçılar sadəliyi əldə etmək üçün işləri çətinləşdirirlər.

Bu, məqsədinizə çatmaq üçün düzgün bir yolun və səhv bir yolun olması demək deyil. Bir pişik dərisinə hər zaman 100 yol var, ancaq qəbul edilə bilən Big O notasiyasına sahib bir ovuc var və ümumiyyətlə zərif sayıla biləcək qədər az sayda var.

Semantika: Təlimin əsl funksiyasına qarşı bir təlimat niyyəti. Semantika həm danışıq dili, həm də proqramlaşdırma baxımından olduqca vacibdir. Fərq: Bir insan semantikalarınız düzgün olmasına baxmayaraq bir ifadəni səhv başa düşə bilər. Kompüterlər tamamilə yazıldıqda və ya tamamilə söndürüldükdə işləyir və məntiq səhvlərinin gəldiyi yerdir.