שפה רגולרית

שפה רגולרית היא קבוצת מילים שאפשר לבדוק בעזרת מכונה פשוטה. מכונה פשוטה יש לה מצבים (תיבות), מצב התחלה, ומצבים שמקבלים. המכונה קוראת אותיות אחת אחת ועוברת בין התיבות לפי חוקים. אם בסוף היא בעמדת קבלה, המילה טובה.

המכונה מתחילה בתיבה מיוחדת. היא קוראת את המילה מהתחלה לסוף. כל אות גורמת לה להחליף תיבה לפי החוק המתאים. בסוף בודקים אם היא עצרה בתיבה שמקבלת. יש גם מכונות לא-דטרמיניסטיות, אבל תמיד אפשר להמיר אותן למכונה רגילה.

דוגמאות קלות: אין שפה (אין מילים) היא רגולרית. גם השפה שמכילה רק את המילה הריקה רגולרית. אפשר לבנות מכונה שמקבלת מילים שבהן האות a מופיעה לפחות שלוש פעמים. אבל השפה שבה יש כמה a ואז אותו מספר של b אינה רגולרית. הסיבה: המכונה הקטנה לא מצליחה לספור בלי גבול.

שפות רגולריות נשארות רגולריות כשמפעילים עליהן פעולות פשוטות: איחוד (או), חיבור מילים, וחזרה של קטעי מילים. משפט חשוב בשם Kleene אומר שכל שפה רגולרית אפשר לבנות מהפעולות האלה מתחילתם של סימנים בודדים. השפות גם סגורות תחת משלים וחיתוך. לכל שפה רגולרית יש מכונה מינימלית עם מספר מצבים קטן ככל האפשר.

יש גם משפט מתקדם שאומר ששפות שנבנות מאיחוד, חיבור ומשלים נקשרות לאוטומטים בלי מעגלים גדולים. זה גם קשור לדרכים לכתוב חוקים לוגיים על מילים.

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!