Stream: Mirror: Isabelle Users Mailing List

Topic: [isabelle] Request for Feedback - New Code Generator Targ...


view this post on Zulip Email Gateway (Jul 20 2022 at 19:14):

From: "Achim D. Brucker" <adbrucker@0x5f.org>
Dear all,
I would like to collect feedback of an experimental implementation
of a new target language for Isabelle: F#. F# is a member of the ML
language family on the dotnet platform.

The current implementation is available as a branch ("feature-codegen-fsharp")
in a fork of Isabelle's Mercurial repository (i.e., the latest development
version):

https://hg.logicalhacking.com/isabelle/shortlog/feature-codegen-fsharp

The current implementation is "mature" enough to successfully generate code for
the "Generate_*" theory files (i.e., I tested the sessions HOL, HOL-Library, and
Imperative_HOL). Of course, it is by far not as well tested (and, due to lack of
hardware, I did not test it on OS X) as the already supported target languages.
Still, I hope it is mature enough to collect feedback and discuss its future.

To use the F# target, please follow, after cloning the Mercurial repository, the
instruction in the file "README_REPOSITORY", i.e., the standard installation for
the repository version of Isabelle. After these steps have been completed
successfully, there should be three new Isabelle tools:

For using F# as a target language, you need to install dotnet using the
isabelle dotnet_setup tool. Just calling this tool, e.g., if you are in the
toplevel directory of your repository clone:

bin/isabelle dotnet_setup

will download the dotnet SDK and install it into the directory
$ISABELLE_HOME_USER/dotnet (note, this requires ca. 500MB of disk space and a
working Internet connection). After the installation of the dotnet SDK, you
should be able to use F# as a new code generator target, e.g.,

export_code gcd "F#"

There are clearly areas for improvements and open issues. For example:

Thanks a lot!

Best,
Achim

PS: I would like to thank Florian Haftmann for the already provided
help and feedback!


Last updated: Apr 20 2024 at 01:05 UTC