SORU
11 Aralık 2009, Cuma


Soyut Sözdizimi Ağacı ve Somut Sözdizimi Ağacı arasındaki fark nedir?

/Derleyiciler nasıl çalıştığı hakkında biraz okudum ve kafam karıştı bir alan bir AST arasındaki farkı CST. Benim anladığım çözümleyici bir CST yapan, bir AST haline dönüşür semantik analiz iletir. Ancak, benim anlayış semantik analiz, sadece kuralları takip edilmesini sağlar. Aslında herhangi bir değişiklik yerine soyut somut hale getirmek için yapar anlamıyorum.

Semantik analiz ile ilgili eksik veya AST ve CST arasındaki fark nedir ben bir şey biraz yapay?

CEVAP
11 Aralık 2009, Cuma


Somut sözdizimi ağacı kaynağını tam olarak ayrıştırılması şeklinde metin temsil eder. Genel olarak, bağlam serbest dilbilgisi kaynak tanımlama dili için uygundur.

Ancak, somut dilbilgisi ve ağaç kaynak metin açıkça parseable yapmak için gerekli, ama gerçek anlamda katkı sağlamayan bir sürü şey var. Örneğin, işleç önceliği uygulamak, CFG genellikle ifade bileşenleri (terim faktörü, vb.), çeşitli seviyeleri vardır operatörler farklı düzeylerde (şart ifadeleri ekleyin, hüküm faktörler oluşmaktadır isteğe bağlı olarak kalkarız, vb.) de onlara bağlayan. Aslında yorumlamak ya da dilini derlemek için, ancak, buna ihtiyacın yok; sadece operatörler ve ifadeler olduğunu İfade düğümleri gerekiyor. Soyut sözdizimi ağacı somut sözdizimi ağacı bu şeyler aslında programın anlamı temsil etmek için gerekli aşağı basitleştirilmesi sonucudur. Bu ağacı çok daha basit bir tanımı vardır ve böylece daha kolay yürütme daha sonraki aşamalarında süreci için.

Genellikle aslında somut bir sözdizimi ağacı oluşturmak için gerek yok. Eylem rutinleri içinde YACC (veya Antlr, ya da Menhir, ya da her neyse...) dilbilgisi doğrudan yapı soyut sözdizimi ağacı, somut sözdizimi ağacı sadece var olduğu bir kavramsal varlık gösteren ayrıştırma yapısı kaynak metin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013
  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010