ICurry

08/29/2019
by   Sergio Antoy, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/22/2021

Fundamental Constructs in Programming Languages

Specifying the semantics of a programming language formally can have man...
research
05/24/2022

A Complex Java Code Generator for ACL2 Based on a Shallow Embedding of ACL2 in Java

This paper describes a code generator that translates ACL2 constructs to...
research
03/29/2016

Compilation as a Typed EDSL-to-EDSL Transformation

This article is about an implementation and compilation technique that i...
research
10/23/2017

Strategy Preserving Compilation for Parallel Functional Code

Graphics Processing Units (GPUs) and other parallel devices are widely a...
research
12/03/2022

Linguistic Constructs as the Representation of the Domain Model in an Intelligent Language Tutoring System

This paper presents the development of an AI-based language learning pla...
research
11/22/2022

Array-Aware Matching: Taming the Complexity of Large-Scale Simulation Models

Equation-based modelling is a powerful approach to tame the complexity o...
research
09/08/2020

On Architecture to Architecture Mapping for Concurrency

Mapping programs from one architecture to another plays a key role in te...

Please sign up or login with your details

Forgot password? Click here to reset