(مبانی برنامه نویسی) استفاده از نگهبانها ( Sentinels ) در برنامه نویسی (عمومی _ الکترونیک)

پژوهشگر و نویسنده: (  افشین رشید )

نکته: در حالت های قبل کد نویسی با جلو رفتن نشانه روی Forward باید چک می شد که آیا این نشانه رو به انتهای یک نیمه از بافر رسیده است یا خیر .در صورتیکه به انتهای یک نیمه بافر رسیده باشد باید نیمه دیگر را دوباره بار می کردیم.

برای هر جلو روی نشانه روی Forward دو عمل مقایسه انجام میشود .می توان این دو را به یک بار تست تبدیل کرد .برای این کار باید در انتهای هر نیمه بافر یک کاراکتر نگهبان قرار دهیم ( Sentinel به عنوان قسمتی از برنامه منبع نخواهد بود ) به این ترتیب برای کنترل حرکت نشانه روی Forward می توانیم از الگوریتم متفاوت استفاده کنیم.


برنامه ای که از یک دیاگرام قطعی استفاده می کند پیاده سازی راحت تری نسبت به برنامه مبتنی بر یک دیاگرام غیر قطعی دارد .برنامه مبتنی بر یک دیاگرام غیر قطعی بایستی دارای قابلیت پی جویی یا Backtracking باشد.از طرف دیگر دیاگرام های انتقال قطعی معمولا تعداد وضعیت بیشتری نسبت به دیاگرام غیرقطعی معادل خود دارند. بنابراین برای پیاده سازی یک اسکنر ابتدا دیاگرام های انتقال معرف الگوی توکن های زبان مورد نظر رسم می گردد. این دیاگرام ها برای بدست آوردن اطلاعات در مورد کاراکترهایی که بوسیله نشانه روی Forward در ورودی باید دیده شوند استفاده می گردد .

نویسنده: دکتر (افشین رشید )