ใช่แล้ว กำหนดนิพจน์ที่ไม่มีบริบทให้เป็นคำที่สร้างโดยไวยากรณ์ต่อไปนี้:
g::=||||||ϵcg⋅g⊥g∨gμα.gαEmpty stringCharacter c in alphabet ΣConcatenationFailing patternDisjunctionRecursive grammar expressionVariable expression
นี่คือตัวสร้างทั้งหมดสำหรับภาษาปกติยกเว้น Kleene star ซึ่งถูกแทนที่ด้วยตัวดำเนินการจุดตรึงทั่วไปและกลไกการอ้างอิงตัวแปร (ไม่จำเป็นต้องใช้ดาว Kleene เนื่องจากสามารถกำหนดเป็น .)กรัม* ≜ μ อัลฟ่าμα.gg∗≜μα.ϵ∨g⋅α
การตีความนิพจน์ที่ไม่มีบริบทต้องมีการบัญชีสำหรับการตีความตัวแปรอิสระ ดังนั้นกำหนดสภาพแวดล้อม
ให้เป็นแผนที่จากตัวแปรภาษา (เช่นส่วนย่อยของ
) และปล่อยให้เป็นฟังก์ชันที่ทำงานเหมือนในอินพุตทั้งหมดยกเว้นและซึ่งผลตอบแทนภาษาสำหรับ\Σ * [ ρ | α : L ] ρρΣ∗[ρ|α:L]ρL ααLα
ตอนนี้ให้นิยามการตีความของนิพจน์ที่ไม่มีบริบทดังนี้:
[[ϵ]]ρ[[c]]ρ[[g1⋅g2]]ρ[[⊥]]ρ[[g1∨g2]]ρ[[α]]ρ[[μα.g]]ρwhereL0Ln+1========={ϵ}{c}{w1⋅w2∣|w1∈[[g1]]ρ∧w2∈[[g2]]ρ}∅[[g1]]ρ∪[[g2]]ρρ(α)⋃n∈NLn∅Ln∪[[g]][ρ|α:Ln]
ด้วยการใช้ทฤษฎี Knaster-Tarski มันง่ายที่จะเห็นว่าการตีความของเป็นสิ่งที่แสดงออกน้อยที่สุดμα.g
มันเป็นเรื่องตรงไปตรงมา (แม้ว่าจะไม่ใช่เรื่องไร้สาระก็ตาม) เพื่อแสดงว่าคุณสามารถให้การแสดงออกโดยไม่มีบริบทซึ่งได้รับภาษาเดียวกับไวยากรณ์ใด ๆ ที่ไม่มีบริบทและในทางกลับกัน ความไม่ไร้สาระเกิดขึ้นจากความจริงที่ว่านิพจน์ที่ไม่มีบริบทมีจุดคงที่ที่ซ้อนกันและไวยากรณ์ที่ไม่ใช้บริบทให้จุดคงที่เดียวเหนือสิ่งอันดับ สิ่งนี้ต้องการการใช้บทแทรกของ Bekic ซึ่งระบุอย่างแม่นยำว่าจุดคงที่ซ้อนกันสามารถแปลงเป็นจุดคงที่เดียวเหนือผลิตภัณฑ์ (และกลับกัน) แต่นั่นเป็นเพียงความบอบบางเท่านั้น
แก้ไข: ไม่ฉันไม่รู้จักการอ้างอิงมาตรฐานสำหรับสิ่งนี้: ฉันทำงานด้วยความสนใจของฉันเอง อย่างไรก็ตามมันเป็นสิ่งก่อสร้างที่ชัดเจนพอที่ฉันมั่นใจว่าเคยถูกคิดค้นมาก่อน Googling ที่ไม่เป็นทางการเผยให้เห็น Joost Winter, Marcello Bonsangue และ Jan Rutten ภาษาล่าสุดของ
Context-Free Languages, Coalgebraicallyซึ่งพวกเขาได้ให้คำจำกัดความที่แตกต่างกัน