ICurry
Sergio Antoy, Michael Hanus, Andy Jost, Steven Libby

TL;DR
ICurry is a new intermediate representation for Curry programs that enables consistent translation of all FlatCurry constructs into imperative languages like C, C++, and Python, facilitating compiler implementation.
Contribution
The paper introduces ICurry, a novel intermediate language for Curry, along with a translation from FlatCurry and a model for implementing functional logic computations in imperative languages.
Findings
Successful translation from FlatCurry to ICurry
Model of functional logic as graph rewriting
Implementation approach in imperative languages
Abstract
FlatCurry is a well-established intermediate representation of Curry programs used in compilers that translate Curry code into Prolog and Haskell code. Some FlatCurry constructs have no direct translation into imperative code. These constructs must be each handled differently when translating Curry code into C, C++ and Python code. We introduce a new representation of Curry programs, called ICurry, and derive a translation from all FlatCurry constructs into ICurry. We present the syntax of ICurry and the translation from FlatCurry to ICurry. We present a model of functional logic computations as graph rewriting, show how this model can be implemented in a low-level imperative language, and describe the translation from ICurry to this model.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCongenital Ear and Nasal Anomalies
