Czytam książkę kompilatora i trochę zmieszany, gdy mówi "gramatyka atrybutu S jest również gramatyką atrybutu L". Nie mogłem zrozumieć. Czy ktoś może to wyjaśnić (przykład powinien być świetny). Dzięki.Co oznacza gramatyka przypisana literą "S" i "L-przypisana"?
Odpowiedz
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 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.
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.
- 1. Gramatyka akceptująca pusty zestaw według reguły S-> S
- 2. Co oznacza gdzie S: new() in C#
- 3. Co to oznacza: s [s [1:] == s [: - 1]] robi w numpy?
- 4. Emacs revert-buff (s-u): co to jest s-u?
- 5. Co oznaczają nazwy katalogów "." i ".." oznacza i co oznacza faDirectory?
- 6. Co oznacza parametr retag w s/multi-spec?
- 7. Co oznacza% S w PHP, HTML lub XML?
- 8. Niejednoznaczna gramatyka
- 9. Co robi wyrażenie regularne \\ s *, \\ s *?
- 10. JavaScript:% s lub% d oznacza ciąg?
- 11. Co oznacza (+ var) oznacza
- 12. Co = ~ oznacza w Perl
- 13. co oznacza "I" w S_IRUSR
- 14. Co oznacza flaga npm -i?
- 15. Co oznacza "int (i) = 1;"?
- 16. Co [[$ - = * i *]] oznacza w bash?
- 17. Co oznacza gdb -i = mi?
- 18. Co znaczy: co oznacza?
- 19. Co to jest gramatyka bez kontekstu?
- 20. Gramatyka w języku Ruby "&& ="
- 21. Co oznacza słowo "s- [nazwa-kluczy]" w Emacs i jak mogę nakazać Emacsowi zignorowanie go?
- 22. Co oznacza xmlns = "" dokładnie oznacza
- 23. co oznacza program sterownika?
- 24. Co oznacza tappley?
- 25. Co oznacza = *?
- 26. Co oznacza "::"?
- 27. Co oznacza "@" w Haskell?
- 28. co oznacza „$ &” oznacza w Ruby
- 29. Gramatyka LPeg dziwności
- 30. Co właściwie oznacza ten sret?