มีอัลกอริทึม / กระบวนงานที่เป็นระบบเพื่อทดสอบว่าภาษานั้นไม่มีบริบทหรือไม่?
กล่าวอีกนัยหนึ่งระบุภาษาที่ระบุในรูปแบบพีชคณิต (คิดว่าบางอย่างเช่น ) ทดสอบว่าภาษานั้นไม่มีบริบทหรือไม่ ลองนึกภาพเรากำลังเขียนบริการเว็บเพื่อช่วยนักเรียนทำการบ้านทั้งหมด คุณระบุภาษาและบริการเว็บเอาท์พุท "ไม่มีบริบท" หรือ "ไม่ใช่บริบท" มีวิธีการที่ดีในการทำสิ่งนี้โดยอัตโนมัติหรือไม่?
มีเทคนิคการเรียนการสอนสำหรับการพิสูจน์ด้วยตนเองเช่นแทรกสูบน้ำแทรกอ็อกเดน, Parikh แทรกการแลกเปลี่ยนแทรกและเพิ่มเติมได้ที่นี่ อย่างไรก็ตามพวกเขาแต่ละคนต้องการข้อมูลเชิงลึกด้วยตนเองในบางจุดดังนั้นจึงไม่ชัดเจนว่าจะทำให้พวกเขากลายเป็นสิ่งที่เป็นอัลกอริทึมได้อย่างไร
ฉันเห็นKaveh เขียนที่อื่นว่าชุดของภาษาที่ไม่มีบริบทไม่นับซ้ำได้ดังนั้นจึงไม่มีความหวังสำหรับอัลกอริธึมที่จะทำงานกับภาษาที่เป็นไปได้ทั้งหมด ดังนั้นฉันคิดว่าบริการเว็บจะต้องสามารถส่งออก "บริบทฟรี", "ไม่ใช่บริบทฟรี" หรือ "ฉันไม่สามารถบอกได้" มีอัลกอริทึมใดบ้างที่มักจะสามารถให้คำตอบนอกเหนือจาก "ฉันบอกไม่ได้" ในหลาย ๆ ภาษาที่มีแนวโน้มที่จะเห็นในตำราเรียน? คุณจะสร้างบริการเว็บดังกล่าวได้อย่างไร
ในการทำให้คำถามนี้ถูกต้องเราจำเป็นต้องตัดสินใจว่าผู้ใช้จะระบุภาษาอย่างไร ฉันเปิดรับข้อเสนอแนะ แต่ฉันกำลังคิดแบบนี้:
โดยที่คือคำศัพท์นิพจน์และSเป็นระบบของความไม่เท่าเทียมกันเชิงเส้นเหนือตัวแปรความยาวโดยมีคำจำกัดความดังต่อไปนี้:
แต่ละคือการแสดงออกของคำ (สิ่งเหล่านี้แสดงถึงตัวแปรที่สามารถเก็บคำใด ๆ ในΣ ∗ )
แต่ละ, B , C , ...เป็นคำที่แสดงออก (โดยปริยาย, Σ = { , B , C , ... }ดังนั้น, B , C , ...เป็นตัวแทนสัญลักษณ์เดียวในอักษรพื้นฐาน.)
แต่ละη , ขη , คη , ...เป็นคำที่แสดงออกถ้าηคือความยาวตัวแปร
การต่อกันของคำ - นิพจน์คือการแสดงออกของคำ
แต่ละเป็นตัวแปรความยาว (สิ่งเหล่านี้แสดงถึงตัวแปรที่สามารถเก็บจำนวนธรรมชาติได้)
แต่ละเป็นตัวแปรความยาว (สิ่งเหล่านี้แสดงความยาวของคำที่สอดคล้องกัน)
ดูเหมือนจะกว้างพอที่จะจัดการกับหลาย ๆ กรณีที่เราเห็นในแบบฝึกหัดตำราเรียน แน่นอนคุณสามารถทดแทนวิธีการแบบข้อความอื่น ๆ ในการระบุภาษาในรูปแบบพีชคณิตหากคุณต้องการ