«parsers» etiketlenmiş sorular

Belirli bir dizenin sabit bir biçimsel dile ait olup olmadığına karar veren algoritmalar hakkında sorular.

1
LL ve LR gramerlerinin dil teorik karşılaştırması
İnsanlar genellikle LR (k) ayrıştırıcılarının LL (k) ayrıştırıcılardan daha güçlü olduğunu söyler . Bu ifadeler çoğu zaman belirsizdir; Özellikle, biz sabit için sınıfları karşılaştırmak gerekir her yerinde veya birlik k ? Peki durum gerçekten nasıl? Özellikle, LL (*) 'nin nasıl uyduğuyla ilgileniyorum.kkkkkk Bildiğim kadarıyla, LL ve LR ayrıştırıcılarının kabul ettiği …

1
EPAL'ı tanıyan herhangi bir gereksiz CFG ayrıştırma algoritması var mı?
Hatta palindromların dili olan EPAL, aşağıdaki net bağlamsız gramer tarafından oluşturulan dil olarak tanımlanmaktadır: S→ Bir BirS→aaS \rightarrow a a S→ b bS→bbS \rightarrow b b S→ a SbirS→aSaS \rightarrow a S a S→ b SbS→bSbS \rightarrow b S b EPAL, pek çok ayrıştırma algoritmasının 'temelini oluşturuyor: dili tanımlayan herhangi …


2
Her 'kötü' normal ifade için kötü olmayan bir alternatif var mı, yoksa dilbilgisinde şeytan var mı?
Görünüşe göre, ReDos saldırıları bazı (aksi takdirde yararlı) düzenli ifadelerin özelliklerini kullanır ... esas olarak NFA tarafından tanımlanan grafikte olası yolların patlamasına neden olur. Eşdeğer bir 'kötü olmayan' regex yazarak bu tür problemlerden kaçınmak mümkün müdür? Değilse (böylece, dilbilgisi bir NFA tarafından pratik alanda / zamanda ele alınamaz), hangi ayrıştırma …


1
Neden ayrı lexing ve ayrıştırma?
Durum makinesinden tek geçiş kullanarak bir belgeyi ayrıştırmak mümkündür. İki geçişe sahip olmanın yararı nedir, yani. metni jetonlara dönüştürmek için bir lexer ve bu jetonlardaki üretim kurallarını test etmek için bir ayrıştırıcıya sahip olmak? Neden üretim kurallarını doğrudan metne uygulayan tek bir geçişiniz olmasın?

2
IELR (1) -parser nedir?
Kendime bizon kullanımını öğretmeye çalışıyorum. Manpage bizonu (1) bizon hakkında şunları söylüyor: LALR (1), IELR (1) veya kanonik LR (1) ayrıştırıcı tablolarını kullanarak deterministik bir LR veya genelleştirilmiş LR (GLR) ayrıştırıcısı oluşturun. IELR ayrıştırıcı nedir? Dünya çapında web'de bulduğum tüm ilgili makaleler ödeme duvarı.

1
“soldan sağa tarama, en sağdaki türev” anlamını ne zaman aldı ?
Göre Ara maddesi , L vasıtası "tarama için sağ-sol", ve "R" anlamına gelir "sağdaki türev". Bununla birlikte, Knuth'un gramerleriyle ilgili orijinal belgesinde , (sayfa 610) ' ile soldan sağa çevrilebilen bir dil olarak tanımlar .LR(k)LR(k)LR(k)LR(k)LR(k)LR(k)LR(k)LR(k)LR(k)kkk Bu yeni terminolojinin ayrışmasının "soldan sağa taraması, en soldaki türevi" tamamlaması için seçildiğini tahmin ediyorum …

3
Bağlamdan bağımsız gramerlere parametre eklerseniz ne elde edersiniz?
Girintiye duyarlı diller için gramerler düşünüyordum ve CF gramerleri parametrelerle birleştirilirse hile yapacak gibi görünüyor. Örnek olarak, ANTLR benzeri formatta basitleştirilmiş Python dilbilgisi için bu parçayı düşünün: // on top-level the statements have empty indent program : statement('')+ ; // let's consider only one compound statement and one simple statement …

5
Ortamsızlığın determinizmden farkı nedir?
"Deterministik bağlamsız dilbilgisi" gibi ifadelerde "deterministik" ile ne anlama geldiğini anlamaya çalışıyorum. (Bu alanda daha belirleyici "şeyler" vardır). En ayrıntılı açıklamadan daha çok bir örneği takdir ediyorum! Eğer mümkünse. Başlıca karışıklık kaynağım, bir dilbilgisinin bu özelliğinin (olmayan) belirsizlikten ne kadar farklı olduğunu söyleyememek. Ne anlama geldiğini bulabildiğim en yakın şey …

3
İkili verilerde bir lexer / ayrıştırıcı kullanmak neden bu kadar yanlış?
Bir ayrıştırıcı birleştiricinin aksine lexer / ayrıştırıcılarla sık sık çalışıyorum ve ayrıştırmada hiç ders almayan insanları görüyorum, ikili verileri ayrıştırmayı sor. Tipik olarak veriler sadece ikili değil aynı zamanda içeriğe duyarlıdır. Bu temel olarak sadece bir tip token, bayt için bir token bulunmasına yol açar. Birileri ikili verileri ayrıştırmak için …


2
LL (k) ve LR (k) dilbilgisi arasında ayrım yapmanın bir yolu var mı?
Son zamanlarda Derleyiciler tasarımı üzerine çalışıyorum. Biri LL gramer, diğeri LR gramer olmak üzere iki tür gramer hakkında bilgi sahibi oldum. Ayrıca her LL dilbilgisinin LL dilbilgisi olan LR olduğunu, LR dilbilgisinin uygun bir alt kümesi olduğunu da biliyoruz. Birincisi yukarıdan aşağıya ayrıştırmada, ikincisi yukarıdan aşağıya ayrıştırmada kullanılır. Fakat verilen …

2
Normal İfadelerin dilinin ayrıştırılması için aşağı itmeli bir otomata ihtiyacı var mı?
Ben daha sonra eşleşen amaçlar için bir dize karşı NFA çalıştırabilirsiniz böylece bir kullanıcı girilen düzenli ifade NFA dönüştürmek istiyorum. Düzenli ifadeleri ayrıştırmak için kullanılabilecek minimum makine nedir? Köşeli parantezlerin sayılması, sayma ihtiyacı anlamına geldiğinden ve bir DFA / NFA rasgele sayma gerçekleştiremediğinden aşağı itmeli bir otomat olması gerektiğini varsayıyorum. …

3
Bu dilbilgisi LL (1) nasıl?
Bu Ejderha Kitabından bir soru. Bu dilbilgisi: S→AaAb∣BbBaS→AaAb∣BbBaS \to AaAb \mid BbBa A→εA→εA \to \varepsilon B→εB→εB \to \varepsilon Soru, bunun LL (1) olduğunu ancak SLR (1) olmadığını nasıl göstereceğini soruyor. LL (1) olduğunu kanıtlamak için, ayrıştırma tablosunu oluşturmaya çalıştım, ama bir çelişki olan bir hücrede birden fazla yapım alıyorum. Lütfen …

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.