ورود ثبت نام
Syntax ( سینتکس ) و Semantics در زبان برنامه نویسی ؟؟
» آموزش برنامه نویسی » Syntax ( سینتکس ) و Semantics در زبان برنامه نویسی ؟؟
25067 بازدید

Syntax ( سینتکس ) و Semantics در زبان برنامه نویسی ؟؟

Syntax در یک زبان برنامه نویسی چیست ؟

Syntax به معنی نحو است که در واقع نحوه نوشتن و قرارگیری کلمات و عبارات به صورت صحیح در یک زبان برنامه نویسی است . یعنی دستورات زبان برنامه نویسی چطوری و به چه شکل باید نوشته شوند .

تفاوت بین زبان های برنامه نویسی همین تفاوت در سینتکس ( Syntax ) آن هاست . مثلاً به برخی از قواعد نحوی ( Syntax ) زبان ++C توجه کنید :

  • هر دستور زبان ++C به سیمی کالون ( ; ) ختم می شود .
  • حداکثر طول یک دستور 255 کاراکتر است .
  • هر دستور می تواند در یک یا چند سطر ادامه داشته باشد .
  • ++C نسبت به حروف حساس است .
  • انواع داده ها و متغیر ها باید قبل استفاده اعلان شوند .
  • شرط if باید در داخل پرانتز نوشته شود .
  • و ……

حال اگر هر کدام از این Syntax ها را در زبان برنامه نویسی رعایت نکنیم با پیغامی به عنوان Syntax Error مواجه خواهیم شد . اگر کد زیر را اجرا کنید با خطای Syntax Error مواجه خواهید شد چون سیمی کالون در تعریف متغیر a قرار داده نشده است :

#include <iostream.h>
#include <conio.h>

void main(){
clrscr();
	       int a

	       a=12;


getch();
}

Semantics چیست ؟

Sematics یا معنا شناسی همان مفهومی است که به ساختارهای نحوی زبان داده می شود . یعنی کدی که نوشته می شود باید نتیجه درست داشته باشد . مثلاً در زبان ++C  آرایه ای را اعلان می کنید ، برای درک معنای این اعلان شما باید با معنای اعلان آرایه در ++C آشنا باشید یعنی باید بدانید اگر این اعلان در ابتدای زیر برنامه قرار بگیرد معنایش این است که با هر بار ورود به آن زیر برنامه این آرایه ایجاد می شود و با خروج از زیر برنامه از بین می ورد ، اگر این را ندانید ممکن است برنامه شما با مشکل مواجه شود هر چند که کد شما درست باشد !!!!!

خطا  های سمنتیکی ، خطا هایی هستند که بعد از کامپایل برنامه به وجود می آیند یعنی کد را درست نوشته ایم ، اما نتیجه ای که می خواهیم را اشتباه تحویل می دهد .

 

به زبان ساده :

این جمله را در نظر بگیرید ” احمد خوب کار می کند ” این جمله از لحاظ نگارشی درست است و قواعد کلمات زبان فارسی هم به درستی رعایت شده است ولی جمله ” احمد می کند خوب کار ” دارای اشکال نحوی یا Syntax است چون در زبان فارسی فعل باید در انتهای جملات بیاید .

جمله ” احمد درخت است ” از لحاظ Syntax درست است اما از لحاظ معنایی ( semantic ) درست نیست .

در نتیجه Syntax فقط قوانین قرارگیری درست عبارت ها را در کنار یکدیگر مشخص می کند و با معنای آن ها کاری ندارد ولی Semantic درستی عبارتی که می نویسید را مشخص می کند .

اگر اشکالی در مورد این مطلب بود حتماً در قسمت نظرات بنویسید . 

رضا طوماری

دیدگاه



جواب سوال چیه ؟ *

  1. هاشم گفت:

    خیلی مفید بود ممنون

  2. اصغر گفت:

    میشه ی نمونه قطعه کد کوتاه از این خطا بنویسید الان

  3. ebrahim گفت:

    سپاسگذارم

  4. ابوالفضل گفت:

    میشه کامل ترش کرد
    خیلی کامل تر جامع هست ولی کامل نیست
    ولی مفید بود

  5. سجاد گفت:

    ممنون. مفید بود

  6. علی گفت:

    در واقع خطاهای سمنتیکی رو کامپایلر نشون نمیده و ما باید پس از اجرا متوجهش بشیم؟

    • رضا طوماری گفت:

      سلام
      یکمی هم بستگی به کامپایلر داره تشخیص بده یا نه ، ولی در کل خطای سمنتیک در واقع دید اشتباه برنامه نویس نسبت به یک موضوع خاص هست که بعد از کامپایل به اشتباهش پی میبره ، اما اگر برنامه نویس به برنامه ای که میخواد بنویسه اشراف کامل داشته باشه به هیچ وجه با خطای سمنتیک مواجه نخواهد شد .

  7. سیدرضا بازیار گفت:

    تشکر
    مفید بود