חומרי לימוד - מדעי המחשב

‫א'‪/‬אדר‪/‬תשע"ה‬
‫שפות חופשיות הקשר ‪ -‬הגדרה‬
‫שפה שניתן לבנות עבורה אוטומט מחסנית לא דטרמיניסטי ‪-‬‬
‫המקבל אותה‪ ,‬ורק אותה‪ ,‬נקראת שפה חופשית הקשר‪.‬‬
‫‪ ‬כמובן שכל שפה שניתן לבנות עבורה אוטומט מחסנית דטרמיניסטי‪,‬‬
‫ניתן לבנות עבורה אוטומט מחסנית לא דטרמיניסטי (פשוט להוסיף‬
‫מעבר לא דטרמיניסטי שמעביר למלכודת) ‪ ‬כל שפה רגולרית היא‬
‫חופשית הקשר‪.‬‬
‫שפות חופשיות הקשר‬
‫‪1‬‬
‫שפות חופשיות הקשר ‪ -‬הגדרה‬
‫שפה שלא ניתן לבנות עבורה אוטומט מחסנית לא‬
‫דטרמיניסטי ‪-‬‬
‫המקבל אותה‪ ,‬ורק אותה‪ ,‬נקראת שפה שאינה חופשית‬
‫הקשר‪.‬‬
‫באופן כללי‪ ,‬זיהוי שפה כזאת ע"י תלות אינסופית כפולה‬
‫(לפחות) בשפה‪.‬‬
‫(למשל מספר ה‪ a-‬שווה למספר ה‪ b-‬ושווה למספר ה‪.)c-‬‬
‫שפות חופשיות הקשר‬
‫‪2‬‬
‫‪1‬‬
‫א'‪/‬אדר‪/‬תשע"ה‬
‫סגירות לעניין שפות חופשיות הקשר‬
‫הכלה‬
‫• אין‬
‫• ‪ L1‬ח"ה‪ L1  L ,‬או ‪  L1  L‬לא ידוע האם ‪ L‬ח"ה‬
‫איחוד‬
‫• יש‬
‫• ‪ L1, L2‬ח"ה‪ L  L1  L2 = L ,‬ח"ה‬
‫חיתוך‬
‫• אין‬
‫• ‪ L1, L2‬ח"ה‪  L1  L2 = L ,‬לא ידוע האם ‪ L‬ח"ה‬
‫שפות חופשיות הקשר‬
‫‪3‬‬
‫סגירות לעניין שפות חופשיות הקשר‬
‫• אין‬
‫משלים • ‪ L‬ח"ה ‪ ‬לא ידוע האם 𝐿 ח"ה‬
‫הופכי‬
‫• יש‬
‫• ‪ L‬ח"ה ‪ R(L) ‬ח"ה‬
‫• יש‬
‫שרשור • ‪ L1, L2‬ח"ה‪ L  L1  L2 = L ,‬ח"ה‬
‫שפות חופשיות הקשר‬
‫‪4‬‬
‫‪2‬‬
‫א'‪/‬אדר‪/‬תשע"ה‬
‫סגירות לעניין שפות חופשיות הקשר‬
‫‪ ‬אם השאלה היא האם השפה חופשית הקשר‪ ,‬מומלץ‬
‫לבדוק האם ניתן לחלק אותה לרכיבים ולהיעזר בטבלת‬
‫הסגירות לעניין זה‪.‬‬
‫‪ ‬איחוד ושרשור ניתן להראות בדומה לאופן שהראנו עבור‬
‫האוטומטים הרגילים‪.‬‬
‫שפות חופשיות הקשר‬
‫‪5‬‬
‫‪3‬‬