article

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

משפחת השפות חופשיות ההקשר סגורה תחת פעולות של איחוד ושרשור שפות, אך לא תחת חיתוך והפרש (להבדיל מהשפות הרגולריות).

הגדרה פורמלית


מבחינה פורמלית נהוג להגדיר שפה חופשית הקשר כשפה שנוצרת על ידי דקדוק חופשי הקשר (דקדוק מטיפוס 2 בהיררכייה של חומסקי). דקדוק \ G ייקרא חופשי הקשר אם ורק אם כל כלל יצירה בו הוא מהצורה \ A\to\alpha כאשר \ A הוא משתנה דקדוקי ואילו \ \alpha היא מחרוזת כלשהי של משתנים דקדוקיים וסימנים טרמינליים.

המונח "חופשית הקשר" בא מכך שההחלפה של \ A יכולה להתבצע ללא חשיבות לשאלה מה נמצא מימינו ומשמאלו של \ A, כלומר ללא חשיבות להקשר בו הוא מופיע.

דוגמה


השפה \ L=\left\{a^nb^n|n\ge 1\right\} היא שפה חופשית הקשר ואינה שפה רגולרית. דקדוק חופשי הקשר שיוצר אותה הוא הדקדוק שמכיל את המשתנה \ S והסימנים הטרמינליים \ a,b ואת כלל היצירה \ S\to aSb|ab.

לעומת זאת, השפה \ L=\left\{a^nb^nc^n|n\ge 1\right\} אינה חופשית הקשר, ניתן להוכיח זאת על נקלה באמצעות שימוש בלמת בר הלל.

חישוביות

Context-free language | Bezkontextový jazyk | Kontextfreie Sprache | Yhteydetön kieli | Linguaggio context-free | Język bezkontekstowy | Limbaje independente de context

 

This article is licensed under the GNU Free Documentation License. It uses material from the "שפה חופשית הקשר".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld