معنی‌شناسی (علوم رایانه)

در نظریه زبان‌های برنامه‌نویسی، معنی‌شناسی (به انگلیسی: semantics) یک پهنه است که متوجه مطالعهٔ ریاضی‌وار دقیق معنی زبان‌های برنامه‌نویسی است. این کار با ارزیابی معنی رشته‌های مجاز نحوی، که توسط زبان برنامه‌نویسی خاص تعریف شده‌اند، انجام می‌شود، که در نهایت «محاسبات درگیر» را نمایش می‌دهد. اگر نتیجه ارزیابی، رشته‌های غیرمجاز نحوی باشد، نتیجه آن است که «بدون محاسبه» را در خروجی بدهد.[۱]

سازوکار معنی‌شناسی

ویرایش

معنی‌شناسی فرایندهایی را که یک رایانه در هنگام اجرای یک برنامه، در آن زبان به‌خصوص، از آن پیروی می‌کند را توصیف می‌کند. این فرایندها می‌تواند توسط توصیف رابطهٔ بین ورودی و خروجی یک برنامه نشان داده شود، همچنین می‌توان توسط توضیح‌دادن آنکه چگونه یک برنامه در سکوی مشخصی اجرا می‌شود نشان داده شود. از این رو معنی‌شناسی یک مدل محاسباتی می‌سازد.[۱]

معنی‌شناسی قراردادی، برای مثال، در این موارد کاربرد دارد: کمک به نوشتن کامپایلرها، فهم بهتر آنکه برنامه چه کاری انجام می‌دهد، اثبات رفتار برنامه و غیره.[۱]

عبارت if زیر

if 1 == 1 then S1 else S2

معنی‌شناسی در زبان برنامه‌نویسی (کامپایلر) تشخیص می‌دهد که تأثیر این عبارت همان S1 تنها می‌باشد.[۱]

بررسی اجمالی

ویرایش

پهنه معنی‌شناسی صوری شامل این موارد است:

معنی‌شناسی رابطه‌های نزدیکی با دیگر زمینه‌ها علوم رایانه مثل طراحی زبان‌های برنامه‌نویسی، نظریه نوع‌ها، کامپایلرها و مفسرها، درستی‌یابی برنامه، و وارسی مدل دارد.[۱]

منابع

ویرایش
  1. ۱٫۰ ۱٫۱ ۱٫۲ ۱٫۳ ۱٫۴ "Semantics (computer science)". Wikipedia (به انگلیسی). 2019-11-19.