موضوع مقاله: فرم باکوس نائور | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # فرم باکوس نائور | مقدمه: در علوم رایانه فرم باکوس نائور یا فرم بکوس-نائور (فرم نرمال باکوس یا فرم نرمال باکوس-نائور) یکی از روش‌های بیان قواعد است که برای گرامر مستقل از متن ارائه شده‌است. | ## بخش 1: فرم باکوس نائور | اغلب از آن به عنوان دستور زبان رسمی در علوم رایانه مورد استفاده قرار می‌گیرد؛ از این میان می‌توان به زبان‌های برنامه‌نویسی، قالب اسناد، دستورزبان دستورها و پروتکل‌های ارتباطی نام برد. برای نمونه در زبان رسمیِ تعیین نیامندی‌ها، در راهنماها و در کتب آموزش زبان‌های برنامه‌سازی. برخی از آن‌ها به صورت کامل تعریف شده‌اند: فرم گسترش یافته بکوس-نائور و فرم تکمیل‌شده بکوس-نائور . تاریخچه در ماه مهٔ سال ۱۹۵۸ یک کمیتهٔ بین‌الملی متشکل از دانشمندانی از بخش‌های تجاری و دانشگاهی در زوریخ تشکیل شد. هدف آنها، توسعهٔ زبان فرتن و دستیابی به یک زبان واحد و استاندارد برای برنامه سازی بود. اول اینکه در زبان جدید مفهوم متغیرهای محلی به وجود آمده بود و در حالی که در فورترن تنها نام‌گذاری سراسری مجاز بود. امکان استفاده از متغیرهای محلی علاوه بر سهولت بیشتر، امکان به‌کارگیری شکلی از برنامه‌سازی را که بعدها توسط جان مک‌کارتی معرفی شد و به بازگشت‌پذیری معروف گردید نیز فراهم ساخت. جان باکوس (سرپرست طراحی زبان فورترن) ایده‌های به کار رفته در الگول را پسندید ولی از نحوهٔ بیان آن خوشش نیامد. او می‌گوید: «آنها همه چیز را به زبان انگلیسی توضیح داده بودند و به‌نظرم رسید که باید کاری کرد تا بتوان به صورت دقیق‌تری به بیان اینگونه مفاهیم پرداخت.» برای حل این مشکل، باکوس گرامر مستقل از متن را که به تازگی توسط نوام چامسکی زبانشناس معروف اختراع شده بود، به‌کار گرفت. کار چامسکی هم به نوبهٰ خود ریشه در کارهای نظری امیل لئون پست دربارهٔ بازنویسی گرامرهای داشت. | ## بخش 2: فرم باکوس نائور | باکوس به دلیل مشغلهٔ زیاد در ژوئن سال ۱۹۵۹ نتوانست مقاله‌اش را به کنفرانس یونسکو که در پیرامون زبان الگول برگزار می‌شد بفرستد، اما دست‌نوشته‌های او بین برخی از شرکت کنندگان توزیع شد. پیتر نائور ریاضیدان دانمارکی که در آن کنفرانس حضور داشت، مقالهٔ باکوس را خواند و علائم بکار رفته توسط باکوس را اصلاح کرد و از آن‌ها برای تشریح زبان الگول استفاده نمود. به همین دلیل این فرم به نام هر دو آن‌ها یعنی جان باکوس و پیتر نائور نام‌گذاری شد. نمادِ '=::' بیانگر آن است که نمادِ سمت چپ باید با نمادِ انتخاب‌شده از سمت راست، جایگزین گردد. در صورتی که نیاز به ایجاد دنباله‌ایی از اعداد باشد می‌توان با فرم توضح داده شده آن را ایجاد نمود. یک عددِ دورقمی، می‌تواند عددی باشد که با یک رقمِ غیرِ صفر آغاز شده و در ادامه هر رقمی، حتی صفر بیاید؛ و نیز یک عدد بین ۱۰ تا ۱۹ به صورت دنباله‌ایی از عدد یک به همراه یک عدد است، صفر یا غیرِ صفر. یعنی یک دنبالهٔ عدد به صورتِ عدد (که ممکن است صفر یا غیرِ صفر باشد) یا اینکه یک عدد در ابتدایِ یک دنبالهٔ عددی بیاید. ن دز زبان‌های برنامه‌سازی قواعدِ زبان‌هایی مانند الگول، پاسکال، جاوا در فرم بکوس‌نائور ارائه شده‌اند. کامپایلر در تحلیل لغوی اول، این کلمات کلیدی را شناسایی می‌نماید و به عنوان نمادهایِ خاص، نشان‌گذاری می‌نماید. اعداد اعشاری، متغیرهای، شناسه‌های و رشته‌های از عناصرِ دیگری هستند نیز در متن شناسایی می‌شوند. | ## بخش 3: فرم باکوس نائور | این فرم، این امکان را فراهم می‌آورد تا عبارتِ زیر در زبان برنامه‌سازی پاسکال قابل بیان باشد. یک ویژگی مشتریک بین انواع مختلف، استفاده از نمادهای عبارات باقاعده مانند * یا +است. در واقع مثال بالا به‌طور دقیق و خالص بکوس-نائوری نیست که برای زبان الگول ۶۰ طراحی شده. استفاده از براکت «[ ]» چند سال بعد از ارائه نسخه اصلی و در پی‌ال/آی متلق به آی‌بی‌ام معرفی شده ولی امروزه از آن در ب.ن. «فرم تکمیل‌شده بکوس-نائور» و آربی‌ان‌اف سایر اضافاتی است که در گزارش‌هایی ارائه شده توسط نیروی وظیفه مهندسی اینترنت مورد استفاده قرار می‌گیرد. ف ساخته شده و از روش‌های عبارات باقاعده پیروی می‌کند تا جایگزینی برای کلاسِ گرامر رسمی باشد؛ که خود به جای آنکه گرامرزا باشد یک گرامر تحلیلی است. از این میان می‌توان به برخی اشاره نمود: موارد قابل انتخاب در یک براکت ذکر می‌شوند : [<item-x>]. مواردی که ۰ یا بیشتر مورد استفاده قرار می‌گیرند بین دو براکت ذکر شده و به نشانِ ستاره ('*') مزین می‌گردد. عبارات پایانی ممکن از به جای کج نویسی به صورت ضخیم نوشته شوند و عبارت غیرِپایانی به جای براکت به صورت معمولی ذکر گردند. هنگامی که از گروهی از موارد استفاده می‌شود، آن‌ها را در پرانتز قرار می‌دهیم نرم‌افزارهایی که از فرم بکوس-نائور استفاده می‌کنند ANTLR، یک تولیدگر پارس‌کننده که به زبان برنامه‌نویسی جاوا نوشته شده‌است. | ## جمع‌بندی | تبدیل‌گر بی‌ان‌اف.) کوکو/آر، تولیدگر مترجمِ برنامه که عبارتی با ویژگی فرم بکوس-نائور توسعه‌یافته را قبول می‌کند ابزار مهندسی مجدد دی‌ام‌اس، برنامه‌ایی که برای تحلیل و تبدیل سیستم است برای زبانِ دلخواه گلد، پارس‌گری برای ب.ن.