Bağlamsız dilleri yakalayan düzenli ifadelerin bir uzantısı var mı?


25

Bağlamsız gramerleri (CFG'ler) içeren birçok makalede, burada sunulan bu gramer örnekleri, sıklıkla oluşturdukları dilin kolay karakteristiklerini kabul etmektedir. Örneğin:

SaaSb
S

oluşturur {a2ibi|i0} ,

SaSb
SaaSb
S

oluşturur {aibjij0} , ve

SaSa
SbSb
S

oluşturur {wwRw(a|b)} , veya eşdeğer {((a|b))1((a|b))2p1=p2R} (burada p1 değinmektedir tarafından yakalanan kısmına (...)1 ).

Yukarıdaki örneklerin tümü, endeksler ( ai ), bu endeksler üzerindeki basit kısıtlamalar ( i>j ) ve normal ifadelerle eşleşen desen ekleyerek oluşturulabilir . Bu, tüm bağlamsız dillerin normal ifadelerin bir uzantısı tarafından üretilip üretilemeyeceğini merak etmemi sağlıyor.

Bağlamsız dillerin tümünü veya bir kısmını önemli olan alt kümelerini üretebilecek düzenli ifadelerin bir uzantısı var mı?


3
İndeksleri ve kısıtlamalar ekleyerek çok güçlü olduğunu gözlemleyin: tanımladığınız mümkün olacak bir CFL değildir. anbncn
13'te

Yanıtlar:


34

Evet var. Bağlamsız bir ifadeyi , aşağıdaki gramer tarafından oluşturulan bir terim olarak tanımlayın :

g::=ϵEmpty string|cCharacter c in alphabet Σ|ggConcatenation|Failing pattern|ggDisjunction|μα.gRecursive grammar expression|αVariable expression

Bu, genel bir sabit nokta operatörü μ α ile değiştirilen Kleene yıldızı dışındaki normal diller için yapıcıların tümü .μα.ggμα.ϵgα

Bağlam içermeyen bir ifadenin yorumlanması, serbest değişkenlerin yorumlanması için muhasebe gerektirir. Yani bir tanımlama çevreyi dilde (yani alt kümeleri için değişkenlerden bir harita olması ) ve let fonksiyonunu olması gibi davranacağını dışındaki tüm girdilere ve için dilini döndürür .Σ [ ρ | α : L ] ρ α L αρΣ[ρ|α:L]ραLα

Şimdi, bağlamsız bir ifadenin yorumunu aşağıdaki gibi tanımlayın:

[[ϵ]]ρ={ϵ}[[c]]ρ={c}[[g1g2]]ρ={w1w2|w1[[g1]]ρw2[[g2]]ρ}[[]]ρ=[[g1g2]]ρ=[[g1]]ρ[[g2]]ρ[[α]]ρ=ρ(α)[[μα.g]]ρ=nNLnwhereL0=Ln+1=Ln[[g]][ρ|α:Ln]

Knaster-Tarski teoremini kullanarak, yorumunun en az sabit olduğunu görmek kolaydır .μα.g

Tamamen önemsiz olmasa da, herhangi bir bağlamsız dilbilgisi ile aynı dili türeten bağlamsız bir ifade verebileceğinizi ve bunun tersi olduğunu söylemek kolaydır. Önemsiz olmama, bağlamsız ifadelerin sabit noktalara yerleştirilmiş olmasından kaynaklanır ve bağlamsız gramerler size bir tutar üzerinden tek bir sabit puan verir. Bu, tam olarak iç içe geçmiş sabit noktaların bir ürün üzerinde tek bir sabit noktaya dönüştürülebileceğini söyleyen Bekic lemmasının kullanılmasını gerektirir (ve bunun tersi de geçerlidir). Ama bu sadece inceliktir.

EDIT: Hayır, bunun için standart bir referans bilmiyorum: Kendi çıkarım için hazırladım. Ancak, daha önce icat edildiğine emin olduğum bir yapı. Bazı geçici Googling, Joost Winter, Marcello Bonsangue ve Jan Rutten'in son yazıda Bağlamsız Diller (Coalgebraically) olarak tanımladıkları ve burada tanımsız ifadeler dedikleri bu tanımın bir türevini (tüm sabit noktaların korunmasını gerektiren) verdiklerini ortaya koyuyor .


Bu oldukça harika. Bunun için standart bir ad veya referans var mı?
Alex ten Brink

5
Arto Salomaa, bunu 1973 yılında “Formal Diller” adlı kitabında anlatıyor. Onlara “Normal İfadeler” diyor.
Tim Schaeffer

3

MathOverflow'da, üreteçleri işlevleri holonomik olan diller hakkında yakından ilgili bir soru (ve birkaç cevap) vardı .

İlginç bir şekilde, bir anlambilim Neel tanımı tekabül yukarıda tam olarak Türlere çözeltilerinin varlığının (yapıcı) ispat örtülü Türlere teoremi ile Türlere denklemleri özyinelemeli. Ne yazık ki, kanıt taslağının, şeylerin 'sonsuz' olduğu durumlar olduğu gibi, ince bir hata içermesi gerekir. Başka bir deyişle, gramer tarafından tanımlanan dönüşümün ihtiyaç duyulan tekil olmayan olması için Jacobian'ın bir şartı vardır. Muhtemelen Bonsangue-Rutten, bu şartı Jacobian'da sigortalamanın bir yolu olarak, sabit noktaların korunmasını gerektirmektedir.μ


AFAICT Winter ve arkadaşları, yalnızca bir Brzozowski türevini alabilir sağlamak amacıyla guardedness gerektiren türevi alınarak . [ μ α .μα.g[μα.g/α]g
Neel Krishnaswami 31:13

1

Geçenlerde, tam olarak bunu yapacak bir çerçevenin ana hatlarını yayınladık. Bazı linklerle birlikte bir bildirim gönderdiğim comp.compilers altına bakın .

Yeni gelişmeler Chomsky-Schuetzenberger Teoremini etkiliyor ve bu sonucun tamamlanması olarak kabul edilebilir. Chomsky, kendisi, gelişmelerden takdir gördü ve “yetişme” isteğini gösteriyor.

Bu gelişmeyle birlikte , bağlamsız ifadeler için iki ayrı formülasyonun eşdeğerliğini de belirledik - bunlardan biri "en az sabit nokta" mu-matem formunun bir uzantısı / tamamlayıcısıdır (başlangıçta Gruska, Yntema ve McWhirter) - 2014 yılında türlerin son bir formülasyonunu aldı - diğeri 2008'de yayınlandı.


4
Lütfen tüm ilgili bilgileri cevabın içine ekleyin. “Derleyicilerin altına bak” şimdiden işe yaramaz bir cevaptı ve birkaç ay içinde tamamen işe yaramaz olacak.
Emil Jeřábek

Bu tamamen yanlış. Comp.compilers (bu site ve diğer blogların aksine, bu arada) kalıcı olarak arşivlenir. Orada ihtiyacınız olan tüm ayrıntıları bulacaksınız. En son yayınlanan makalede de burada bulunabilecek birçok bağlantı vardır. Ayrıca, blog sitelerinden farklı olarak, dışarıya açık ve daha geniş bir kitleye faydalı. USENET'te herhangi bir şey bulmakta zorluk çekmemelisiniz - bunun gibi sorular sorulmalı ve tartışılmalıdır. Eğer zorluk yaşıyorsanız, işte bağlantı. groups.google.com.tr/forum/#!topic/comp.compilers/YCa5jHUR1iQ
NinjaDarth

2
Mesele, arşivlenmiş olmamak değil, arşivlerin geniş olmasıdır. Şimdi arşive baktığımda , gönderinizi en üste yakın bir yerde bulabilirim, ancak birileri bu cevabı birkaç ay veya yıllar sonra görecek, nerede kazmaya başlayacakları konusunda hiçbir fikirleri olmayacak. Okuyucuların daha spesifik bir yere yönlendirebilecekleri uzun ve güvenilir olmayan bir arama yapmasını sağlamak kibirli ve kaba bir şeydir. Şimdi, senin için yaptım. 30 saniye sürdü. Bunu kendin de yapabilirdin.
Emil Jeřábek
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.