SORU
19 Aralık 2008, Cuma


Arıyorum net bir tanım ne bir "tokenizer", 'çözümleyici" ve "lexers" ve nasıl oldukları ile ilgili birbirlerine ve kullanılır?

Arıyorum net bir tanım ne bir "tokenizer", "çözümleyici" ve "lexer" ve nasıl oldukları ile ilgili birbirine (örneğin, bir çözümleyici kullanın bir tokenizer ya da tam tersi)? C/h kaynak veri bildirim ve tanımlar ayıklamak için dosyaları geçecek bir program oluşturmak istiyorum.

Örnekler aradım ve biraz bilgi bulabilirsiniz, ama gerçekten birbirimizle nasıl ilişki kurmak dilbilgisi kuralları, ayrıştırma ağaçları ve soyut sözdizimi ağacı gibi temel kavramları kavramak için mücadele. Bu kavramlar gerçek bir programına kayıtlı olması gerekir sonuçta, ama 1), 2 benziyorlar mı ne) orada ortak uygulamaları.

Ben bakıyorum Wikipedia'da bu konular ve programlar gibi Lex ve Yacc, ama asla içinde geçmiş bir derleyici sınıf (EE büyük) ben zor anlamak için tam olarak ne oluyor.

Mark

CEVAP
19 Aralık 2008, Cuma


Bir tokenizer boşluk (sekme, boşluk, yeni satır) bakarak belirteçleri içine metin akışı, genellikle sonları.

Bir lexer temelde bir tokenizer, ama genellikle belirteçleri bu sembolik bir sayı, bir simge, bir dize, bu diğer token eşitlik operatörü -- ekstra içerik ekler.

Bir parser, lexer gelen belirteçleri akışı alır ve soyut sözdizimi ağacı (genellikle) programın orijinal metin tarafından temsil temsil dönüşür.

Kontrol ettim, bu konuda en iyi kitap "Compilers: Principles, Techniques, and Tools" genellikle sadece olarak bilinen son "Dragon Kitap".

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bigky226

    bigky226

    11 HAZİRAN 2006
  • Just So

    Just So

    3 HAZİRAN 2007
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006