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

תוכן שנמחק תוכן שנוסף
Gran (שיחה | תרומות)
מ הגהה
Gran (שיחה | תרומות)
מ אפסילונים
שורה 1:
{{אוטומטים ושפות פורמליות}}
נאמר שדקדוק הוא '''דו-משמעי''' אם קיימת בשפה הנוצרת על-ידי הדקדוק מילה, שניתן ליצור אותה בשני אופנים שונים. כלומר, אם קיימים שני עצי-גזירה שונים עבור אותה המילה. דוגמא לדקדוק דו-משמעי הוא הדקדוק הבא
<center><math>S\to 0S1 \mid \epsilonvarepsilon \mid 01</math></center>
קל לראות כי ניתן ליצור את המילה 01 בשני אופנים שונים: <math>S\Rightarrow 0S1 \Rightarrow 0\epsilon1varepsilon1 = 01</math> אך גם <math>S\Rightarrow 01</math>. עבור דוגמא זו קל לשנות את הדקדוק כך שיהיה חד-משמעי. למשל <math>S\to 0S1 \mid \epsilonvarepsilon</math> יוצר את אותה השפה, ואינו דו-משמעי.
 
 
שורה 10:
קובץ:Tree aaa 2.svg|עץ יצירה 2 למילה aaa
</gallery>
מאידך, הדקדוק <math>S\to aS \mid \epsilonvarepsilon</math> יוצר את אותה שפה (<math>aa^*</math>), ואינו דו משמעי.
[[קובץ:Tree aaa right.svg|80px|ממוסגר|ימין|עץ היצירה היחיד של המילה aaa בדקדוק שאינו דו-משמעי]]
 
שורה 16:
<center><math>S \to A \mid C</math></center>
<center><math>A\to 0A2\mid B \qquad C\to 0C2 \mid D</math></center>
<center><math>C\to 1C \mid \epsilonvarepsilon \qquad D\to 1D2 \mid \epsilonvarepsilon</math></center>
|פתרון=הדקדוק דו משמעי. המילה 02 יכולה להיווצר בשני אופני שונים. בראשון <math>S\Rightarrow A</math> ובשני <math>S\Rightarrow C</math>.{{ש}}
זו המילה היחידה שהינה דו משמעית. נשנה כך שלא ייתכן שתיווצר בצורה השניה על-ידי כך שנשנה את כללי הגזירה של המשתנה D ל-<math>D\to 1D2 \mid 12</math>.}}