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

05/24/2022
by   Alessandro Coglio, et al.
0

This paper describes a code generator that translates ACL2 constructs to corresponding Java constructs, according to a shallow embedding of ACL2 in Java. Starting from purely functional ACL2 code, the generated Java code exhibits imperative and object-oriented features like destructive updates, loops, and overloading. The overall translation from ACL2 to Java is fairly elaborate, consisting of several ACL2-to-ACL2 pre-translation steps, an ACL2-to-Java proper translation step, and several Java-to-Java post-translation steps. Experiments suggest that the generated Java code is not much slower than the ACL2 code. The code generator can also recognize, and translate to Java, ACL2 representations of certain Java constructs, forerunning a code generation approach based on a shallow embedding of Java in ACL2 (i.e. going the other way). This code generator builds upon, and significantly extends, a simple Java code generator for ACL2 based on a deep embedding of ACL2 in Java.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/10/2018

A Simple Java Code Generator for ACL2 Based on a Deep Embedding of ACL2 in Java

AIJ (ACL2 In Java) is a deep embedding in Java of an executable, side-ef...
research
05/24/2022

A Proof-Generating C Code Generator for ACL2 Based on a Shallow Embedding of C in ACL2

This paper describes a C code generator for ACL2 that recognizes ACL2 re...
research
08/29/2019

ICurry

FlatCurry is a well-established intermediate representation of Curry pro...
research
07/10/2018

A modelling language for the effective design of Java annotations

This paper describes a new modelling language for the effective design o...
research
07/22/2019

Learning the Relation between Code Features and Code Transforms with Structured Prediction

We present in this paper the first approach for structurally predicting ...
research
05/19/2010

Groebner bases in Java with applications in computer graphics

In this paper we present a Java implementation of the algorithm that com...
research
08/29/2023

ACER: An AST-based Call Graph Generator Framework

We introduce ACER, an AST-based call graph generator framework. ACER lev...

Please sign up or login with your details

Forgot password? Click here to reset