Sto scrivendo un ottimizzatore per un linguaggio simile a JavaScript e devo scegliere una rappresentazione di codice intermedia. La scelta ovvia / tipica in questi giorni è Static Single Assignment (SSA).
Tuttavia, l'implementazione moderna del compilatore in C discute anche della forma intermedia funzionale, il che significa sostanzialmente diventare funzionali per la rappresentazione intermedia (puri solo in termini di variabili locali, i dati dell'heap sono ancora mutabili e non CPS, solo let
blocchi semplici e chiamate di coda) e presenta alcuni vantaggi in termini di facilità di ragionamento.
Presumibilmente non è un gioco da ragazzi o tutti già utilizzerebbero una tale rappresentazione, quindi la mia domanda è: quali svantaggi ha la forma intermedia funzionale rispetto all'SSA?