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
LEADER 02071nab a2200253 i 4500
001 acta86957
005 20250415114934.0
008 250415s2022 hu o 000 eng d
022 |a 2676-993X 
024 7 |a 10.14232/actacyb.282969  |2 doi 
040 |a SZTE Egyetemi Kiadványok Repozitórium  |b hun 
041 |a eng 
100 1 |a Podlovics Péter Dávid 
245 1 2 |a A modern look at GRIN, an optimizing functional language back end  |h [elektronikus dokumentum] /  |c  Podlovics Péter Dávid 
260 |a University of Szeged, Institute of Informatics  |b Szeged  |c 2022 
300 |a 847-876 
490 0 |a Acta cybernetica  |v 25 No. 4 
520 3 |a 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. 
650 4 |a Természettudományok 
650 4 |a Számítás- és információtudomány 
695 |a Programozás, Programozási nyelv, GRIN 
700 0 1 |a Hruska Csaba  |e aut 
700 0 1 |a Pénzes Andor  |e aut 
856 4 0 |u http://acta.bibl.u-szeged.hu/86957/1/cybernetica_025_numb_004_847-876.pdf  |z Dokumentum-elérés