2010-03-16 9 views

Odpowiedz

12

L-attributed grammar

gramatyk L-przypisywane są specjalnym typem gramatyk atrybutów. Pozwalają one na ocenę atrybutów w jednym przejściu od lewej do prawej abstrakcyjnego drzewa składni. W rezultacie ocena atrybutów w gramatyce z atrybutem L może być wygodnie włączona w przetwarzaniu od góry do dołu. Wiele języków programowania jest przypisanych literą L. Specjalne typy kompilatorów, wąskie kompilatory, oparte są na pewnej formie gramatyki przypisanej przez L. Są one porównywalne z gramatycznymi przypisanymi przez S. Używany do syntezy kodu.

S-attributed grammar

S przypisanym Grammars są klasą gramatyk atrybutów charakteryzujących się nie odziedziczone atrybutów. Dziedziczone atrybuty, które muszą zostać przekazane z węzłów macierzystych do węzłów podrzędnych drzewa składni abstrakcyjnej podczas analizy semantycznej procesu analizowania, stanowią problem podczas analizowania od dołu do góry, ponieważ w analizowaniu od dołu do góry węzły nadrzędne składni abstrakcyjnej drzewa są tworzone po stworzeniu wszystkich swoich dzieci. Ewaluacja atrybutów w gramatyce przypisanej przez funkcję S może być wygodnie włączona zarówno podczas analizowania z góry w dół, jak i od dołu do góry. Yacc jest oparty na podejściu typu "S".

Każda gramatyka przypisana literą S jest również grammarą przypisaną literą L.

W gramatyce z przypisanym atrybutem ocena atrybutów może być przeprowadzana od lewej do prawej. Ponieważ atrybuty gramatyki S-atrybutu nie są dziedziczone, nie przeszkadza ci to robić. W związku z tym można powiedzieć, że gramatyka przypisana przez S jest zgodna z tą cechą L-gramatyki.

1

Wystarczy S-nadana Gramatyka jest gramatyka, która ściśle Syntetyzowany rodzaj gramatyki oznacza jedynie posiadające wartość atrybutu w całym drzewie parsowania

gdzie jako gramatyki L-Przypisywane mogą mieć zarówno syntetyzowana jak również dziedziczone gramatyki z niektórymi zasady takie jak przeniesienie spadku z zawsze z lewej na prawą. Myślę, że to ci pomoże.