-
دیاگرام غیرقطعی :
دیاگرامی غیرقطعی است که در یک وضعیت برای خواندن یک کاراکتر حالت قطعی وجود نداشته باشد و روی یالهای دیاگرام λ وجود داشته باشد.
می توان دیاگرام های غیر قطعی را با استفاده از الگوریتم به دیاگرام های قطعی تبدیل کرد.
*برای پیاده کردن یک اسکنر ابتدا دیاگرام های انتقال معرف الگوهای یک Tokenرا رسم می کنیم ;از این دیاگرام ها برای بدست اوردن اطلاعات در مورد کاراکترهایی که توسط نشانه روی forwardباید در ورودی دیده شود ،استفاده می کنیم.به این ترتیب همان طور که کاراکترهای ورودی خوانده می شود از یک وضعیت در دیاگرام به وضعیت دیگر حرکت می کنیم تا اینکه به وضعیت نهایی برسیم.
Y@SiN
فعلا امضا نداريم.باشگاه داريم
-
نکته (1): برای تشخیص هر کلمه کلیدی دو راه حل وجود دارد:
- برای هر کدام از کلمات کلیدی یک stateدیاگرام داشته باشیم در این حالت (state diagram) تعداد state ها و شرط ها زیاد خواهد شد .
- با کلمات کلیدی همانند یک شناسه برخورد می شود در این صورت کلمات کلیدی را داخل یک ارایهیا جدول قرار می دهیم یعنی در ابتدای جدول علائم کلمات کلیدی را وارد می کنیم،وقتی که یک شناسه شخیص داده شد اسکنر لیست را می گردد تا پی ببرد به اینکه ایا این شناسه کلمه کلیدی می باشد یا نه!در صورتی که ان شناسه در جدول پیدا شد ،خود ان کلمه را به عنوان Token انتقال پیدا کرده و attributeان صفر می شود در غیر این صورت در جدول علائم جستجو می کند تا ببیند که ان شناسه جود دارد یا خیر !اگر وجود داشت انرا وارد جدول نمی کند بلکه ادرس ان را انتقال می دهد.در غیر این صورت متغیر را وارد جدول کرده و ادرس جدول علائم را به عنوان attribute به پارسل انتقال می دهد.
Y@SiN
فعلا امضا نداريم.باشگاه داريم
-
*ترتیب را چگونه مشخص کنیم:
دیاگرام ها باید طوری قرار گیرد که ابتدا طولانی ترین دیاگرام قرار گیرد مثلا دیاگرامی که تشخیس اعداد اعشاری را می دهد باید قبل از دیاگرام تشخیص اعداد صحیح باشد.
دیاگرام تشخیص Tokenهایی که مورد استفاده بیشتری دارند مثل space,tab: باید قبل از دیاگرام های کم یاب قرار گیرند تا در نهایت تست کمتری در تشخیص Token انجام گیرد پس از اینکه دیاگرام تشخیص Tokenها شد به راحتی می توان ان را با دستور case پیاده سازی کرد.
Y@SiN
فعلا امضا نداريم.باشگاه داريم
-
برچسب برای این موضوع
مجوز های ارسال و ویرایش
- شما نمی توانید موضوع جدید ارسال کنید
- شما نمی توانید به پست ها پاسخ دهید
- شما strong>نمی توانید فایل پیوست ضمیمه کنید
- شما نمی توانید پست های خود را ویرایش کنید
-
قوانین انجمن