האם אתה יודע מה ההבדל בין תחביר, דקדוק וסמנטיקה בשפה?


תשובה 1:

אני חושב שחשוב לציין כי יש הבדל בין השימוש במילים "תחביר" ל"דקדוק "על ידי בלשנים ומדעני מחשבים.

מדעני מחשבים משתמשים במילה "דקדוק" כדי להגדיר מערכת כללים לקביעה אם רצף נתון של סמלים תקף מבחינה תחבירית, כלומר האם הוא שייך לשפה מסוימת. במילים אחרות, דקדוק הוא תיאור של תחביר כלשהו (אתה יכול להיות בתיאורים חלופיים רבים של אותה תחביר), ושפה היא קבוצה של רצפי סמלים נכונים מבחינה תחבירית. דקדוק מסופק לרוב בצורה שנקראת Backus-Naur Form.

בלשנים משתמשים במילה "דקדוק" כדי להגדיר את מערך הכללים לשימוש נכון בשפה. ישנם סוגים רבים ושונים של כללים, ובין סוגים אלה כללים תחביריים עוסקים בהצבת מילים בסדר הנכון. שני הדברים שצריך לציין הם ש (1) כן אתה יכול להשתמש בשפה טבעית בצורה לא נכונה (והעולם לא מתמוטט) ו (2) בלשנים בדרך כלל לא ממש חוששים אם משפט נתון שייך לשפה, אבל במקום זאת הם מודאגים מאופן השימוש בשפות.

הן בבלשנות והן במדעי המחשב, המילה "סמנטיקה" מתייחסת למערכת כללים המסבירה כיצד יש לפרש את רצפי הסמלים.


תשובה 2:

תחביר: כיצד לפרוש את השפה. זה כולל מילות מפתח ומיקוד פיסוק. לדוגמה, תחביר פייתון שונה מתחביר C בכמה וכמה תחומים, ההצהרות הגדולות ביותר צריכות להסתיים עם נקודה-פסיק ב- C ואילו פייתון דורש עיבוד הכניסה ספציפית.

התחביר הוא המקום בו תוכלו לראות מפתחים רבים זוכים לאהבתם או לשנאתם לשפה, כולל את עצמי. אני שונא PHP ו- JavaScript - הם קוראים מכוערים, בלוקים גדולים הופכים לא מושכים ומורכבים שלא לצורך, ולמען האמת, שניהם מאפשרים למפתחים להשתחל עם פרדיגמות הקלדה מסקירות ונהלים רעים. עם זאת, אני אוהב את רובי מכיוון שהוא קורא כל כך יפה, יש בו הקלדה קצת יותר מחמירה וחסימות לא הופכות למסורבלות יתר על המידה בגלל האופן בו התפתחה השפה עצמה. מבני השפה הופכים אותה לשפה אלגנטית למרות היותה שכבת הפשטה משמעותית ביותר ב- C.

דקדוק: סדר נכון של הצהרות כך שיהיה הגיוני וניתן לעבד אותן עם תקורה חישובית מינימאלית ככל האפשר. אחת הדוגמאות הטובות ביותר שראיתי לאחרונה זה היה זוג קינון לולאות מתוך כוונה להדפיס משהו כמו:

**********

שיטת חיוג טובה יותר, קלה יותר להבנה וחישובית פחות הייתה יכולה להיות שימוש בסדרה של הצהרות printf (). דקדוק תכנותי טוב מגיע עם תרגול, וכל המפתחים החדשים נוטים לסבך את הדברים יותר מדי במרדף אחר הפשטות.

זה לא אומר שיש דרך נכונה ושגויה להשיג את המטרה שלך. ישנן תמיד 100 דרכים לעור חתול, אבל יש רק קומץ שיש לו סימון Big O מקובל, ובדרך כלל רק כמה מאלו שקריאים מספיק כדי להיחשב אלגנטיים.

סמנטיקה: כוונת אמירה לעומת תפקידה בפועל של אמירה. סמנטיקה חשובה להפליא הן בשפה המדוברת והן בתכנות. ההבדל: אדם יכול לבנות בצורה לא נכונה הצהרה גם אם הסמנטיקה שלך נמצאת במקום. מחשבים יפעילו בדיוק את מה שאתה כותב, או לא אם זה לגמרי כבוי, וכאן באים באגי היגיון.