จะมี 'รัฐที่ตายแล้ว' ในไวยากรณ์ที่ไม่มีบริบทหรือไม่?


18

ไวยากรณ์ที่ไม่ใช้บริบทสามารถรวม "สถานะที่ตายแล้ว" จากหุ่นยนต์เช่น

G=({a,,},{A,B,},{AaB,B,B,},A)?

กฎการผลิตและC c Cจะวนซ้ำตลอดไปและไม่เคยสร้างคำใด ๆ สิ่งนี้ได้รับอนุญาตหรือกฎการผลิตจะต้องจบลงด้วยเทอร์มินัลในบางจุดหรือไม่?B

คำตอบ:


24

ไวยากรณ์บริบทฟรีได้รับอนุญาตให้มีกฎระเบียบที่ไม่ก่อผล สิ่งนี้ได้รับการยอมรับเพราะ CFG ทุกคนสร้างภาษาเดียวกันกับCFG ที่เหมาะสมซึ่งไม่มีกฎที่ไม่ก่อผลไม่มีการผลิตสตริงที่ว่างเปล่าและไม่มีรอบ ดังนั้นจึงปลอดภัยที่จะสมมติว่า CFG เหมาะสมโดยไม่สูญเสียความเป็นนายพล


ไม่มากนัก CFG ที่เหมาะสมจะต้องเป็นไปตามข้อกำหนดอีกสองข้อ ดังนั้นฉันจะเปลี่ยนรูปนี้
reinierpost

@reierierpost: ฉันคิดว่าคุณหมายถึงมีคลาสของ CFG ที่ห้ามกฎที่ไม่ก่อผล แต่ยังรวมถึง CFG ที่ไม่เหมาะสมใช่ไหม ฉันเดาว่าการปรับรูปแบบอาจทำได้ง่าย ๆ เช่น: "เว้นแต่จะเป็นเช่นนั้น"
mhelvens

ฉันหมายถึงไม่ใช่ CFG ทุกตัวที่ไม่มีกฎที่ไม่ก่อผลซึ่งเหมาะสมกับคำพูดของคุณ แต่คำจำกัดความของ CFG ที่เหมาะสมโดยการยกเว้นกฎที่ไม่ก่อผลอย่างชัดเจนทำให้ชัดเจนว่าสิ่งเหล่านี้เป็นไปได้ใน CFG ตามอำเภอใจดังนั้นนั่นคือสิ่งที่ฉันจะเขียน
reinierpost

ขอบคุณสำหรับการปรับปรุง ฉันหมายถึงว่ามี subclasses ของ CFG ที่พวกเขาไม่ได้รับอนุญาตให้มีกฎดังกล่าว
ilke444

มี CFG ที่เหมาะสมซึ่งไม่มีกฎที่ไม่ก่อผลไม่มีการผลิตสตริงที่ว่างเปล่าและไม่มีวงจรที่สร้างภาษาเดียวกันกับ ({a}, {A}, {A-> epsilon}, A) หรือไม่? ฉันชอบประโยคแรก บางทีประโยคที่สองควรเป็น "นี่เป็นเพราะคำจำกัดความของ CFGs อนุญาตให้มีเทอร์มินัลและ nonterminals ใด ๆ ที่ จำกัด ด้านซ้ายมือของการผลิต"
Theodore Norvell

3

ใช่แน่นอน NFA ทุกตัวสามารถเขียนเป็น CFG ได้ และการสร้าง DFA ด้วย 'รัฐตาย' (คำที่ฉันสอนคือ 'อ่างล้างมือ') นั้นไม่สำคัญ

G=({a},{A},{AA},A)
{a}

ε

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.