A modern look at GRIN, an optimizing functional language back end

GRIN is short for Graph Reduction Intermediate Notation, a modern back end for lazy functional languages. Most of the currently available compilers for such languages share a common flaw: they can only optimize programs on a per-module basis. The GRIN framework allows for interprocedural whole progr...

Teljes leírás

Elmentve itt :
Bibliográfiai részletek
Szerzők: Podlovics Péter Dávid
Hruska Csaba
Pénzes Andor
Dokumentumtípus: Cikk
Megjelent: University of Szeged, Institute of Informatics Szeged 2022
Sorozat:Acta cybernetica 25 No. 4
Kulcsszavak:Programozás, Programozási nyelv, GRIN
Tárgyszavak:
doi:10.14232/actacyb.282969

Online Access:http://acta.bibl.u-szeged.hu/86957
Leíró adatok
Tartalmi kivonat:GRIN is short for Graph Reduction Intermediate Notation, a modern back end for lazy functional languages. Most of the currently available compilers for such languages share a common flaw: they can only optimize programs on a per-module basis. The GRIN framework allows for interprocedural whole program analysis, enabling optimizing code transformations across functions and modules as well. Some implementations of GRIN already exist, but most of them were developed only for experimentation purposes. Thus, they either compromise on low-level efficiency or contain ad hoc modifications compared to the original specification. Our goal is to provide a full-fledged implementation of GRIN by combining the currently available best technologies like LLVM, and evaluate the framework's effectiveness by measuring how the optimizer improves the performance of certain programs. We also present some improvements to the already existing components of the framework. Some of these improvements include a typed representation for the intermediate language and an interprocedural program optimization, the dead data elimination.
Terjedelem/Fizikai jellemzők:847-876
ISSN:2676-993X