موضوع مقاله: خطای نحوی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # خطای نحوی | مقدمه: از آن‌جایی که برنامه‌های کامپیوتری باید دستوارت سخت‌گیرانهٔ نحوی مشخص را دنبال کنند تا برنامه درست کامپایل شود، هر جنبه‌ای از کد که با دستورها نحوی برنامه مطابقت ندارد، یک خطای نحوی تولید می‌کند. | ## بخش 1: خطای نحوی | خلاف خطاهای منطقی که خطاهایی هستند که در جریان یا منطق برنامه هستند، خطاهای نحوی، اشتباهات گرامری هستند که معمولاً محدود به یک کاراکتر است. برای مثال، نگذاشتن نقطه‌ویرگول در آخر هر خط یا آکلاد اضافه در آخر هر تابع، خطای نحوی تولید می‌کنند. انواع خطاها در برنامه‌نویسی خطای زمان اجرا یافتن و اصلاح خطاهای زمان اجرا دشوارتر از خطاهای نحوی می باشد، توجه کنید که اگر script دارای خطای نحوی باشد، مفسر آن را تشخیص می‌دهد. خطای نحوی نادیده گرفتن یک قانون کنترل‌کننده ساختار زبان برنامه‌نویسی در حال استفاده. خطاهای منطقی پیدا کردن و برطرف خطاهای منطقی از هر نوع خطای دیگری دشوارتر است، این خطا در جایی رخ می‌دهد که کد معتبر دقیقاً آنچه را باید انجام بدهد اجرا کند، ولی برنامه‌نویس کد انتظار دیگری دارد، یعنی که از نظر اجرا درست است اما کار دیگری را انجام می‌دهد. خطای محیطی این خطاها نتیجه‌ی عوامل جانبی در برنامه هستند و زمانی رخ می‌دهند که موجودیت‌های خارجی نظیر فایل‌ها و اتصالات شبکه‌ای به خوبی اجرا نشود. تشخیص خطای نحوی یک راه برای فکر کردن به یک خطای نحوی این است که عمل‌کرد شفاف‌سازی قابل توجهی در وضوح و قابلیت استفاده از کد ارائه می‌دهد. | ## بخش 2: خطای نحوی | مانند سایر فناوری‌های دیجیتال مثل آدرس ایمیل، حذف یا نابه‌جایی فقط یک حرف، عدد یا کاراکترهایی که باعث ایجاد مشکلات اساسی برای سیستم‌های محاسباتی که باید کد رو به صورت خطی بخواند، می‌شوند. هم یک برنامه‌نویس ممکن است خطای تایپی انجام دهد و هم ممکن است بعضی از کلمات و دستورها را فراموش کند. در بسیاری از خطاهای منطقی، کامپایلر خطاها را نمی‌تواند بگیرد، زیرا حتی اگر خطاهای سنگینی ایجاد کنند، دستورهای نحوی آن‌ها با دستورهای درست مطابقت دارد. به عبارت دیگر، کامپیوتر نمی‌تواند بگوید که آیا خطای منطقی باعث ایجاد مشکلاتی می‌شود یا خیر. اما می‌تواند بگوید که کد با نحو مطابقت ندارد، زیرا درک این نحو به هوش بومی کامپایلر وارد می‌شود. جنبهٔ دیگر درک خطاهای نحوی این است که نشان می‌دهند که چگونه، خلاف انسان‌ها، کامپیوترها نمی‌تواند از ورودی استفاده کنند که به طور کامل طراحی نشده است. نبود یک دوره یا ویرگول در یک جمله یا دستور، دو حرف تعویض شده در یک کلمه، کامپایلر را گیج کرد و کار کردن آن به‌طور درست را غیرممکن می‌کند. | ## بخش 3: خطای نحوی | از طرف دیگر، کسانی که کد را می‌خوانند، می‌توانند خطاهای تایپی را تشخیص دهند و آن‌ها آنچه را که می‌خوانند می‌توانند درک کنند. این احتمال وجود دارد که با پیش‌رفت کامپیوترها طی دهه‌های آینده، مهندسان بتوانند کامپایلرها و سیستم‌هایی را ایجاد کنند که بتوانند برخی از انواع خطاهای نحوی را برطرف کنند. حتی الآن، در برخی از محیط‌های کامپایل، ابزارها می‌توانند خطاهای نحوی را در جا به طور خودکار اصلاح کنند. بستن کروشه اشتباه نوشتن کلمات کلیدی استفاده­ی نادرست از نام توابع حذف کاراکتر $ از ابتدای نام متغیر مثال خطای نحوی قطعه کد زیر در زبان C دارای خطا است، زیرا نقطه‌ویرگول در آخر خط (بعد از a) آورده نشده است. کامپایلر وقتی کد منبع داده می‌شود که پاسخ‌گوی الزامات دستور زبان نباشد، آن را به عنوان خطای نحوی پرچم‌گذاری می‌کند. | ## جمع‌بندی | در نظر داشته باشید، خطاهای نوع (مانند تلاش برای اعمال عملگر افزایشی ++ در یک متغیر از نوع boolean در جاوا) و خطاهای متغیر اعلام نشده اکثراً هنگام شناسایی زمان کامپایل، خطاهای نحوی محسوب می‌شوند.