<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description rdf:about="https://repozitorij.uni-lj.si/IzpisGradiva.php?id=162658"><dc:title>Efficient multishot algebraic effect handlers</dc:title><dc:creator>Koprivec,	Filip	(Avtor)
	</dc:creator><dc:creator>Vidali,	Janoš	(Mentor)
	</dc:creator><dc:subject>Algebraic effects</dc:subject><dc:subject>effect handlers</dc:subject><dc:subject>functional programming</dc:subject><dc:subject>theory of programming languages</dc:subject><dc:subject>denotational semantics</dc:subject><dc:subject>optimizing compilation</dc:subject><dc:subject>polymorphic compilation</dc:subject><dc:subject>subtyping</dc:subject><dc:description>Algebraic effects and handlers are a powerful abstraction for structuring effectful programs. Computational effects are represented by operations and the meaning of these operations is defined by handlers. This separation of concerns allows for a clear separation of the effectful code and the code that interprets these effects, allowing for a more modular and maintainable codebase. However, the performance of algebraic effects and handlers is still a concern. This thesis presents a compilation pipeline that compiles programs from Eff - a language with native support for algebraic effects and handlers - to Ocaml, which does not have native support for algebraic effects and handlers. The compilation pipeline performs several optimizations to improve the performance of the generated code. We first introduce an explicitly typed language CoreEff that serves as an intermediate language between Eff and Ocaml. We then introduce several optimizations that simplify coercions generated for polymorphic functions and optimize the code using source-to-source transformation and function specialization relying on the explicit type information available in the language. Furthermore, the optimization phases are designed to be modular, can be easily extended with new optimizations and are proven to preserve the denotational semantics of the program. Finally, we evaluate the performance of the generated code by implementing the compilation pipeline in Eff compiler and evaluation on several benchmarks. The results show that the optimizations significantly improve the performance of the generated code, making the overhead of using algebraic effects and handlers negligible in most cases.</dc:description><dc:date>2024</dc:date><dc:date>2024-09-26 08:15:05</dc:date><dc:type>Doktorsko delo/naloga</dc:type><dc:identifier>162658</dc:identifier><dc:language>sl</dc:language></rdf:Description></rdf:RDF>
