Sto esaminando il compilatore Scheme Stalin. È grande e complesso. Inoltre, se ho capito bene, l'autore stava pianificando di scrivere una serie di articoli che descrivono in dettaglio gli aspetti dell'implementazione, ma non sono mai riusciti a farlo.Inferenza di tipo globale nel compilatore Schema Stalin
L'aspetto di Stalin che mi interessa è l'inferenza di tipo globale: dedurre i tipi di cose in base al loro utilizzo in altri punti del programma. Stalin lo fa davvero? Se sì, come, e dove nella sua base di codice? Usa una variante/estensione di un algoritmo Hindley-Milner?
Hai visto [questa coppia Q/A su cstheory.SE] (http://cstheory.stackexchange.com/questions/9765/the-stalin-compiler-brutally-optimizes-but-how)? Fondamentalmente suggerisce che Stalin non ha bisogno di costruire "su" dai tipi in quanto tali, già dedica * tutto * al valore e al suo utilizzo. – Leushenko
@Leushenko, grazie! Penso che tu abbia ragione: sembra che questo compilatore "salti" il concetto di tipi e lavori su dispacci di tipi di dati primitivi. – yotsov