SORU
17 ŞUBAT 2011, PERŞEMBE


'ayrıştırma ağacı arasındaki fark ne ve AST?

Derleme sürecinin farklı aşamalarında tarafından oluşturulur? Ya ben de aynı şey için farklı isimler vardır?

CEVAP
25 Mart 2012, Pazar


Bu Terence Parr tarafından Expression Evaluator dilbilgisi dayanmaktadır.

Bu örneğin dilbilgisi:

grammar Expr002;

options 
{
    output=AST;
    ASTLabelType=CommonTree; // type of $stat.tree ref etc...
}

prog    :   ( stat )  ;

stat    :   expr NEWLINE        -> expr
        |   ID '=' expr NEWLINE -> ^('=' ID expr)
        |   NEWLINE             ->
        ;

expr    :   multExpr (( ' '^ | '-'^ ) multExpr)*
        ; 

multExpr
        :   atom ('*'^ atom)*
        ; 

atom    :   INT 
        |   ID
        |   '('! expr ')'!
        ;

ID      : ('a'..'z' | 'A'..'Z' )  ;
INT     : '0'..'9'  ;
NEWLINE : '\r'? '\n' ;
WS      : ( ' ' | '\t' )  { skip(); } ;

Giriş

x=1
y=2
3*(x y)

Ayrıştırma Ağacı

Ayrıştırma ağacı giriş somut bir temsilidir. Ayrıştırma ağacı giriş tüm bilgileri korur. Boş kutuları boşluk temsil eder, yani satır sonu.

Parse Tree

AST

AST giriş soyut temsilidir. Parens dernekleri ağaç yapısı türetilebilir çünkü AST mevcut olup olmadığına dikkat edin.

AST

EDİT

Daha üzerinden bir açıklama için bakınız Compilers and Compiler Generators pg. 23

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • Learn word 2013 tutorials

    Learn word 2

    5 AĞUSTOS 2014
  • Music EuroDance 2

    Music EuroDa

    12 Mayıs 2011