دوستان عزیز برای پیدا کردن سریع مطالب مورد نظر خود، می توانید از قسمت جستجوی سریع در سایت، یک یا چند کلمه کلیدی مورد نظر خود را جستجو نمایید.
یا اینکه بر روی دو آیکون سبز رنگ "طبقه بندی موضوعات" یا "جستجوی کلمات کلیدی" در سمت راست و چپ موجود در بالای سایت کلیک نمایید...
در صورت بروز مشکل در پرداخت الکترونیکی؛ میتونید ایمیلی ، پیامکی، تلفنی یا تلگرامی بگید تا فایلتون براتون ارسال بشه.
ابزارهای مولد تحليلگر لغوي و تحليلگر نحوي Lex و Yacc | ابزارهای مولد تحليلگر لغوي و تحليلگر نحوي Lex و Yacc"/>
طبقه بندی موضوعات
جستجوی کلمات کلیدی
پنج‌شنبه , 18 آگوست 2022
آخرین مطالب
خانه -> دانلود -> ابزارهای مولد تحليلگر لغوي و تحليلگر نحوي Lex و Yacc

ابزارهای مولد تحليلگر لغوي و تحليلگر نحوي Lex و Yacc

معرفي دو ابزار توليد تحليلگر لغوي و تحليلگر نحوي

از هنگامي كه تحليگر­هاي لغوي و تجزيه­كننده­ها با دست نوشته مي­شدند ، ]كم­كم و ناخودآگاه[ تحليلگرهاي لغوي و تجزيه­كننده­ها به طراحي يكساني رسيدند و طراحان فهميدند كه آنها را مي­توان با دادن شرحي از رفتار مورد­نظرشان ، به طور خودكار توليد­كرد . نمونه­اي از اين ابزارهاي خودكار كه برنامه­نويسان را از كار خسته­كننده­ي نوشتن]دستي[ تحليلگر لغوي يا تجزيه­كننده ، آسوده­ می کنند در زیر معرفی شده اند .

ابزار توليد کننده تحليلگر لغوي:

Lex :

Lex يك توليدكننده­ي تحليلگر لغويست كه متن را براساس اطلاعات داده­شده در فايل مشخصه تحليل مي­كند. اين مشخصه­ها كه در يك فايل ورودي متني براي  Lexليست مي­شوند ، عبارات باقاعده­اي را كه بايد تشخيص داده شوند ، تشريح مي­كنند . اعمالي كه بايد روي موجوديتهاي تشخيص­داده­شده اجرا شوند ، مي­توانند به فرم برنامه­هاي C­ ، به فايل­مشخصه اضافه­شوند . اين اعمال عيناً در برنامه C توليد­شده توسط  lex ، ثبت­خواهدشد و ]بعد از[ يكبار كامپايل يك تحليلگر­لغوي را براي فايل­مشخصه­ي داده شده ، تشكيل­خواهدداد . همه­ي كاراكترهاي تشخيص­داده­نشده توسط تحليلگر­لغوي ، عيناً در فايلِ خروجي كپي مي­شود .

Lex تولیدکننده آنالیزهای لغوی است. خلاصه نحوه فراخوانی دستورات آن به شکل زیر است:

Lex [-tvnq] [file]

Lex برنامه هایی را تولید می کند که با استفاده از آن ها می توان تحلیل لغوی یک متن داده شده را انجام داد. برای این کار باید قوانین مربوط به یافتن اجزاء لغوی و انجام تحلیل را در قالب فایل هایی با قالب استاندارد به عنوان ورودی به Lex داد. این فایل ها در اصل مجموعه ای از action ها هستند که به زبان c می باشند و تعیین می کنند که Lex در قبال یافتن یک واحد لغوی تعریف شده و یا به عبارت دیگر یک عبارت (expression) باید چه عکس العملی نشان دهد.

در نهایت Lex یک برنامه به زبان C تولید می کند که این برنامه می تواند یک فایل نمونه را از ورودی دریافت نماید و با توجه به قوانین از پیش تعریف شده اجزاء مختلف را شناسایی می کند. این اجزاء یا در مجموعه قوانین تعریف شده برای Lex وجود دارند و یا نه. در صورت وجود عمل متناسب بررروی آن ها انجام می شود و در غیر این صورت عین جزء شناسایی شده به خروجی منتقل می گردد.

نکته ای که وجود دارد و باید به آن دقت شود این است که Lex تنها به شناسایی اجزاء لغوی و پردازش آن ها می پردازد و هیچ پردازشی را برروی الگوهای زنجیره های لغوی انجام نمی دهد.

ابزار توليد کننده  تحليلگر نحوي :

از این ابزار ها میتوان به YACC  و Bison  اشاره کرد که Bison  مورد بررسی قرار داده ایم .

Bison :

مقدمه :

Bison ، از يك گرامر ورودي ، يك برنامه C مي­سازد كه بعد از كامپايل شدن ، يك تجزيه­كننده توليد مي­كند . اين تجزيه­كننده ، زبان  توصيف شده توسط گرامر را تشخيص مي­دهد** . برنامه­نويس بايد توسط Flex يك تحليلگرلغوي بسازد يا آن را به شكل دستي بنويسد . در فايل مشخصه­ي Bison ما مي­توانيم عمليات­هايي به زبان C اضافه كنيم . هر زمان كه تطابقِ*** قاعده­ي­گرامري ]با دنباله­ي توكن­ها[ تشخيص داده مي­شود ، تجزيه­كننده ، عمليات مربوط به آن قاعده را اجرا مي­كند . با اين روش مي­توان يك كامپايلر كامل نوشت .

معمولاً تجزيه­كننده­هايي كه توسط Bison توليد مي­شوند ، ساختار فايل ورودي را كه بايد از قواعدِگرامر داده شده به Bison پيروي كند ، بررسي مي­كنند .

پس براي بكارگيري Bison يك فايل­مشخصه]­ي  [Biosn بنويسيم . ساختار احتمالي فايل ورودي كه بايد تحليل شود ، ]شامل[ عمليات­هايي كه بايد اجرا شود ، يك تحليلگر لغوي و اعلانات لازم ، خواهد بود .

Yacc در اصل برنامه ای است برای تولید پارسر ها. این برنامه یک syntax را به عنوان ورودی دریافت می کند و یک برنامه خروجی را تولید خواهد نمود که می تواند الگوهای زنجیره های لغوی را دریافت نموده و پردازش مناسب را برروی آن ها انجام دهد. این برنامه خروجی در اصل یک پارسر از نوع LALR است. عبارت LALR در اصل مخففی برای عبارت زیر است:

Look ahead, left to right, right most derivation producer with 1 look ahead token

در یک سلسه مراتب اجرا می توان گفت که ابتدا برنامه تولید شده توسط Lex اجزاء لغوی را شناسایی می نماید و سپس برنامه تولید شده توسط Yacc براساس اجزاء شناسایی شده نسبت به استخراج زنجیره های معنادار از این اجزاء شناخته شده اقدام می نماید.

کاربر گرامی

برای دانلود فایل های مورد نظرتان بایستی بر روی دکمه "افزودن به سبد خرید" کلیک نمایید .

پس از چند ثانیه ، فایل مورد نظر شما به سبد خریدتان اضافه گردیده و این دکمه تبدیل به دکمه "پرداخت" خواهد شد.

با کلیلک بر روی دکمه "پرداخت" ، وارد صفحه پرداخت خواهید شد .

با وارد کردن اطلاعات و ایمیل خود ، فایل مورد نظر به ایمیل شما ارسال گردیده و همچنین لینک دانلود فایل بلافاصله برایتان به نمایش درخواهد آمد.

– قابل پرداخت با تمام کارتهای بانکی + رمز دوم

– پشتیبانی سایت ۰۹۳۵۹۵۲۹۰۵۸ – Info@tnt3.ir – universitydatainfo@yahoo.com




سفارش ترجمه متون عمومی و تخصصیفروشگاه اینترنتی کتاب - خرید آنلاین کتاب - دانلود کتاب الکترونیکی
لیست محصولات مورخ 1399/09/27