Ich schreibe ein Optimierungsprogramm für eine Sprache, die JavaScript ähnelt, und muss eine Zwischencodedarstellung auswählen. Die naheliegende / typische Wahl heutzutage ist Static Single Assignment (SSA).
In Modern Compiler Implementation in C wird jedoch auch die funktionale Zwischenform erörtert, was im Grunde bedeutet, dass die Zwischendarstellung rein funktional ist (rein nur in Bezug auf lokale Variablen, Heap-Daten sind noch veränderbar und nicht CPS, nur einfache let
Blöcke und Tail-Aufrufe) und hat einige Vorteile in Bezug auf einfacher zu begründen.
Vermutlich ist es kein Kinderspiel, oder jeder würde bereits eine solche Darstellung verwenden. Meine Frage ist also, welche Nachteile hat die funktionale Zwischenform im Vergleich zur SSA?