logo

שגיאה סמנטית

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

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

השגיאה הסמנטית יכולה להתעורר באמצעות משתנה שגוי או שימוש באופרטור שגוי או ביצוע פעולה בסדר שגוי.

שגיאה סמנטית כלשהי יכולה להיות:

  • סוגים לא תואמים של אופרנדים
  • משתנה לא מוצהר
  • אי התאמה של טיעון בפועל עם טיעון פורמלי

דוגמה 1: שימוש במשתנה לא מאותחל:

 int i; void f (int m) { m=t; } 

בקוד זה, t אינו מוצהר וזו הסיבה שהוא מציג את השגיאה הסמנטית.

דוגמה 2: אי תאימות סוג:

 int a = 'hello'; // the types String and int are not compatible 

דוגמה 3: שגיאות בביטויים:

 String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String