Ayrıştırıcı teorisi hakkında iyi kitaplar mı?


9

Java projelerimden biri , kaynatılmış bir çatal ve Antlr veya JavaCC'den farklı olarak, ayrıştırıcılar çalışma zamanında üretilir. Oluşturulan gramerler İfade Gramerlerini veya PEG'leri ayrıştırır (onlar için başka bir terimin "packrat" olduğunu duyuyorum).

Çalışma zamanı üretimi karmaşıklık eklerken (bytecode üretimi dahil), başka bir özellik ayrıştırıcı teorisinin kendisiyle ilgilidir. Ne yazık ki, bilgisayar biliminde sağlam bir arka planım yok gibi, mevcut kodu mevcut kavramlarla eşleştirmek için teorik bilgiye sahip değilim - bu durumda, ayrıştırıcılar.

Ayrıştırıcılar hakkında satın alabileceğim ve okuyabileceğim iyi bir referans kitabı, hatta zayıf teorik bilgilerimi hesaba katarak böyle bir "haritalama" oluşturmama yardımcı olabilecek internet bağlantıları var mı?

Yanıtlar:



3

Ayrıştırıcıların teorisi hakkında bilgi edinmek istiyorsanız, bu klasik kitabın 1. cildini tavsiye ederim:

Aho, Alfred V .; Ullman, Jeffrey D., Ayrıştırma, çeviri ve derleme teorisi , Prentice-Hall (1972).


Bu, yayınlandığı sırada konuyla ilgili bir ansiklopedi idi. Ama o zamandan beri araştırmalar yapıldı.
babou

1

Dil farkını önemsemiyorsanız, Yüksek Sipariş Perl'in 8. Bölümü tamamen ayrıştırma ile ilgilidir ve özellikle ayrıştırıcı birleştiricileri kullanarak özyinelemeli bir iniş ayrıştırıcısı oluşturur. Erişilebilir (Perl'den korkmuyorsanız) ve isterseniz ücretsiz olarak okuyabilirsiniz. Bu kıvılcım oldu benim geri teknikleri birkaç yıl ayrıştırma ilgi.


0

Ayrıştırma Teknikleri harika bir kitap ve bazı bölümleri birkaç kez okudum, ancak sizin için ilginç olmayacak olan LR ayrıştırma üzerine odaklanıyor. Özel durumunuzda, alternatiflerin sırasına göre geri izleme ile yukarıdan aşağıya yinelenen iniş ayrıştırmaları olan PEG'lere bakıyorsunuz.

Aynı stratejiyi kullanan ayrıştırıcı birleştiricilere bakmanızı öneririm. Örneğin , ayrıştırıcı birleştiriciler oluşturmak için Haskell kullanan http://research.microsoft.com/pubs/65201/parsec-paper-letter.pdf adlı bu makaleyi kontrol edebilirsiniz . try Geri izlemeyi dahil ettikleri bölümü kontrol edin (Bölüm 3.4).

Her durumda, öğrenmeniz gereken şey:

  • özyinelemeli iniş ayrıştırma ve LL gramerleri
  • sabit ileriye karşı sonsuz ileriye (geri izleme ile yapılır)
  • geri izleme stratejileri
  • Sol özyinelemeli kurallarla nasıl başa çıkılır
  • Üstel davranışı önlemek için kısmi sonuçların hafızaya alınması
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.