Precedente :: Successivo |
Autore |
Messaggio |
Andrea Moderatore
Registrato: 23/12/03 13:10 Messaggi: 5200
|
Inviato: Sab Mar 31, 2007 1:17 pm Oggetto: [Linguaggi e compilatori] Condizioni onesweep |
|
|
Qualcuno mi aiuta a ricostruire la regola? Sul quaderno ho scritto una cosa che mi risulta indecifrabile! o_O'
L'unica cosa che ho capito è che non posso avere dipendenze fra i sintetizzati del padre e gli ereditati del figlio... |
|
Top |
|
|
Mau Utente maturo
Registrato: 13/01/05 14:07 Messaggi: 933
|
Inviato: Sab Mar 31, 2007 10:46 pm Oggetto: Re: [Linguaggi e compilatori] Condizioni onesweep |
|
|
Andrea ha scritto: | Qualcuno mi aiuta a ricostruire la regola? Sul quaderno ho scritto una cosa che mi risulta indecifrabile! o_O'
L'unica cosa che ho capito è che non posso avere dipendenze fra i sintetizzati del padre e gli ereditati del figlio... |
Io procederei così:
- disegno albero decorato con produzioni e regole semantiche
- verifico che:
A)la grammatica sia aciclica assolutamente (con l'algoritmo di aciclicità assoluta)
B)non ci siano, per ogni produzione, attributi sintetizzati che vengono ereditati (praticamente questa è la condizione che hai detto tu) |
|
Top |
|
|
vinz Amministratore
Registrato: 12/12/03 12:56 Messaggi: 6648 Residenza: San Pellegrino Terme (Bergamo)
|
Inviato: Dom Apr 01, 2007 4:35 pm Oggetto: |
|
|
Che la grammatica sia aciclica in maniera assoluta non è un requisito perché la grammatica sia onesweep.
Una delle due regole che deve soddisfare è quella che avete già detto, ovvero che non deve esserci dipendenza tra un attributo sintetizzato del padre e uno ereditato del figlio.
Poi, per ogni produzione, si disegna il brother graph, o grafo dei fratelli. I nodi del grafo sono i non terminali a destra della produzione, gli archi rappresentano la dipendenza di un attributo di un non terminale a destra con un altro non terminale sempre a destra.
Supponiamo di avere una produzione P : N1 = N2 N3. Se ci fosse una regola semantica del tipo N3.x = f(N2.x), brother graph sarebbe
Se i grafi dei fratelli, delle varie produzioni, sono tutti aciclici, la grammatica è one-sweep.
Inoltre, una grammatica è one-sweep di tipo L se, in più, i nodi figlio del nodo padre sono valutabili da sinistra (Left) a destra.
Spero di essere stato chiaro, altrimenti chiedete pure. _________________ Let the future tell the truth and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I really worked, is mine.
Nikola Tesla |
|
Top |
|
|
Andrea Moderatore
Registrato: 23/12/03 13:10 Messaggi: 5200
|
Inviato: Dom Apr 01, 2007 4:42 pm Oggetto: |
|
|
Chiarissimo, ma io ho sempre pensato che il Brothergraph fosse il solito grafo della produzione. |
|
Top |
|
|
vinz Amministratore
Registrato: 12/12/03 12:56 Messaggi: 6648 Residenza: San Pellegrino Terme (Bergamo)
|
Inviato: Dom Apr 01, 2007 5:18 pm Oggetto: |
|
|
vinz ha scritto: | Che la grammatica sia aciclica in maniera assoluta non è un requisito perché la grammatica sia onesweep. |
EDIT: scusate, anche questa condizione è necessaria. Ho trovato un riferimento ad essa sull'eserciziario di Paraboschi. _________________ Let the future tell the truth and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I really worked, is mine.
Nikola Tesla |
|
Top |
|
|
|