divarche.ir

مقاله تحليل نحوي جهت دار

  • موضوع مقاله : مقاله تحليل نحوي جهت دار
  • مربوط به رشته :  کامپیوتر
  • فرمت اجرایی : در قالب Doc
  • تعداد صفحات : 18

تجزيه گر چگونه كار مي كند.

هدف تجزيه گر تطابق ورودي اش با ساختار نحوي مشخص شده توسط توليداتي است كه دستور زبان را بوجود مي آورند . مولفه اصلي تجزيه گر يك ميانگير ورودي است ، گاهي اوقات به عنوان پشته اي تصور مي شود كه در آن نشانه ها تغيير مي يابند ، يا همانطور كه با ورودي روبرو مي شوند، به صورت متوالي ذخيره مي شوند . در همان زمانيكه نشانه در ميانگير ورودي ذخيره مي شود، ارزش معنايي اش روي پشته ارزشي افزوده مي شود. نشانه در ميانگير تغيير نمي يابد مگر اينكه معني دهد يعني مگر اينكه با قواعد دستور زبان و با ورودي كه بر آن مقدم مي باشد هماهنگ باشد . اگر ورودي معني ندهد ، تجزيه گر به خطاي نحوي اشاره مي كند . به منظور مشخص كردن اينكه آيا نشانه معني مي دهد ، تجزيه گر نوعي از جدول تصميم گيري دارد كه براي هر يك از حالتها ليستي از نشانه هاي قابل قبول را فراهم مي آورد . همچنين جدول مشخص مي كند كه با هر نشانه قابل قبول چه تجزيه گري استفاده مي شود. هنگامي كه جدول نشان ميدهد كه نشانه در ميانگير تغيير داده مي شود ، يك حالت جديد را مشخص مي كند . تجزيه گر حالت جاري از روي پشته حالت پشته مي كند و به حالت جديد مي پرد . بنابراين هر زمان كه نشانه در ميانگير ورودي تغيير مي يابد ، به تعداد حالت روي پشته حالت افزوده مي شود . براي هر حالت از تجزيه گير ، به جز حالت اوليه‌، نشانه تكي وجود دارد كه باعث جهش به آن حالت خوانده شد . اين نشانه ، براي حالت نشانه مشخصه ناميده مي شود. هنگامي كه سمت راست ترين ، يا جديدترين نشانه ها در ميانگير ورودي دقيقا مطابق با سمت راست توليد باشند ، ممكن است تجزيه گر نشانه هايي را جايگزين كند كه قاعده را با نشانه واحد ، نشانه در سمت چپ توليد تطبيق دهد. نشانه اي كه توالي نشانه ها را جايگزين  مي كند نشانه كاهنده ناميده مي شود . مكانيسم واقعي كاهش كاملا مهم است . در همان زماني كه نشانه هاي ورودي از ميانگير ورودي حذف مي شود ، شماره هاي حالت از پشته حالت برداشته مي شود طوري كه وقتي تمام نشانه هاي ورودي مطابق با قاعده حذف مي شوند ، حالت تجزيه گير به مقدار قبلي بر گردانده مي شود كه آن مقدار را در زماني كه نخستين نشانه در قاعده ديده مي شد در برداشت همانطور كه شماره هاي حالت از پشته حالت برداشته مي شود ، مقادير نشانه از پشته مقدار برداشته مي شود . اگر قاعده پردازده كاهنده اي دارد ، متغيرهاي موقتي با مقادير برداشته شده از پشته بار مي شوند و پردازده كاهنده ناميده مي شوند . اكنون نشانه كاهنده در ميانگير ورودي طوري  تغيير مي يابد كه گويي يك نشانه ورودي بودند. اگر پردازه كاهنده نتيجه را بر گرداند به عنوان مقدار نشانه كاهنده در پشته مقدار تغيير مي يابد . تجزيه گير دوباره حالت جراي را پشته مي كند و همانطور كه از طريق جدلوهاي تجزيه گير مشخص مي شود به حالت جديد مي پرد. اگر در ورودي شما خطا وجود ندارد ، هنگامي كه آخرين نشانه از  ورودي خوانده مي شود ، در ميانگير ورودي تغيير مي يابد ، و كاهش ها اجرا مي شوند ، دقيقا يك نشانه ، نشانه دستور زبان يا هدف كه كل ورودي شما را توصيف مي كند در ميانگير ورودي وجود خواهد داشت . در اين هنگام تجزيه گير اعلام مي كند كه پايان يافته است . در هر زمان كه قاعده نشانه ها را در ميانگير ورودي برابر مي كند كاهشها الزاما رخ نمي دهند . اگر نشانه كاهنده معني ندهد ، يعني اگر هماهنگ با قواعد دستور زبان و با ورودي كه بر آن مقدم مي باشد نيست ، تجزيه گر كاهش را اجرا نخواهد كرد