مفهوم عبارات منظم:(Logular expression):
ابزاری است برای نمایش زبانهای منظم از نظر قدرت دقیقا معادل گرامرهای منظم می باشد یعنی هر زبانی که بتوان برای ان یک گرامر منظم تعریف کرد.فشرده بودن و خواناتربودن عبارات منظم دلیل استفاده از ان می باشد.
عبارات منظم برای نمایش Tokenها نیز مناسب اند یک نرم افزاری به نام Lexوجود دارد که عبارت منظم را به Tokenهاتبدیل می کند،عبارات منظم روی زبان∑ (الفبای زبان)به صورت زیر تعریف می شود.
۱) (λ)(منظور رشته است) یک عبارت منظم است و {λ}تک عضوی را تعریف می کند.
۲) اگر (a € ∑ ) باشد انگاه a یک عبارت منظم است و زبان a را تعریف می کند
هر کاراکتر به تنهایی یک عبارت منظم است.
3) اگر r,sعبارت منظم باشند که زبان L(r),L(s) ,را تعریف می کنند در ان صورت :
- (r).(s یک عبارت منظم است که زبان L(r).L(s) را تعریف می کند.
- r¦s یک عبارت منظم است که L(r)u L(s) را توصیف می کند.
- (r) یک عبارت منظم است که زبانL(r) را توصیف می کند.
نکته : چون عبارتهای منظم از نظر نمایش خواناتر هستند و حجم کمتری را اشغال می کنند
(از نظر حافظه) معمولا در نمایش گرامرهای یک زبان از عبارات منظم استفاده می کنند و به بیان دیگر هر جایی که بتوان از زبان نوع سوم استفاده کنیم قادریم از عبارات منظم برای نمایش ان زبان استفاده نماییم.
*سوال:
_برخی از زبان ها دارای Tokenهایی هستند که نمی توان با استفاده از عبارات منظم انها را توصیف کرد؛چرا؟
*جواب:
_به دلیل اینکههمه گرامرهای ما منظم نیستند تا بتوان در قالب عبارات منظم انها را بیان کرد.به عنوان مثال
مجموعه همه رشته های با پرانتزهای تودرتو را نمی توان توسط عبارات منظم تعریف کرد(((®((( این قبیل گرامرها(گرامرهایی که تعداد پرانتزهای تودرتو زیادی دارند) تحت عنوان گرامر مستقل از متن می باشد.
تمرین:
جستجو در اینترنت برای پیدا کردن patternهای زبان پاسکال به صورت عبارت منظم و ویرایش ان انجام دهید(قاعده های زبان پاسکال).