Svantaggi della forma intermedia funzionale

16

Sto scrivendo un ottimizzatore per una lingua simile a JavaScript e devo scegliere una rappresentazione di codice intermedio. La scelta ovvia / tipica in questi giorni è Assegnazione singola statica (SSA).

Tuttavia, l'implementazione del compilatore moderno in C discute anche della forma intermedia funzionale, che fondamentalmente significa diventare pura funzione per la rappresentazione intermedia (pura in termini solo di variabili locali, i dati dell'heap sono ancora mutevoli, e non CPS, semplicemente let blocchi e chiamate tail) e presenta alcuni vantaggi in termini di facilità di ragionamento.

Presumibilmente non è un gioco da ragazzi o tutti useranno già una tale rappresentazione, quindi la mia domanda è: quali svantaggi ha la forma intermedia funzionale rispetto a SSA?

    
posta rwallace 01.06.2013 - 10:28
fonte

1 risposta

1

SSA è ottimo per l'eliminazione del codice morto, la propagazione costante, la specializzazione parziale e così via. Se questo tipo di cose non è presente nel tuo menu, puoi saltare SSA e utilizzare una rappresentazione più rilassata per passaggi di analisi più semplici

    
risposta data 07.08.2013 - 08:26
fonte

Leggi altre domande sui tag