Zajmuję się kompilatorem Schematu Stalina. Jest duży i złożony. Ponadto, jeśli dobrze zrozumiałem, autor zamierzał napisać serię artykułów opisujących aspekty implementacji, ale nigdy tego nie robił.Globalne wnioskowanie typu w kompilatorze Schematu Stalin
Aspektem Stalina, którym jestem zainteresowany, jest wnioskowanie globalne: wnioskowanie o typach rzeczy w oparciu o ich wykorzystanie w innych miejscach programu. Czy rzeczywiście robi to Stalin? Jeśli tak, w jaki sposób i gdzie w bazie kodu? Czy używa on wariantu/rozszerzenia algorytmu Hindley-Milnera?
Czy widziałeś [tę parę Q/A w witrynie cstheory.SE] (http://cstheory.stackexchange.com/questions/9765/the-stalin-compiler-brutally-optimizes-buthow)? Zasadniczo sugeruje to, że Stalin nie musi budować "up" z typów jako takich, to już informuje * wszystko * o wartości i jej użyciu. – Leushenko
@Leushenko dzięki! Myślę, że masz rację: wygląda na to, że ten kompilator "pomija" pojęcie typów i działa na wysyłkach typu pierwotnego. – yotsov