是否有任何编译器可用于编译为惯用C的函数或lisp-ish语言?大多数编译器似乎提供了类似于由C宏组成的机器语言的东西。我想知道是否有任何东西可以生成基于更高级语言的可读C代码。
答案 0 :(得分:7)
鉴于你用Haskell标记了这个问题,我会给出一个Haskell答案。 JHC是一个Haskell编译器,它可以产生相当惯用的ansi-C。它是一个优化的整个程序编译器,可以生成令人难以置信的快速二进制文件。我现在不确定它有多稳定,而且它可以处理的程序似乎有限。但是不要相信我的话,自己检查一下。
答案 1 :(得分:5)
对于Common Lisp,目前只有一个广泛使用的编译器可以编译为C:ECL。您需要查看输出是否足够可读。
多年前,一家公司为了这个目的而出售了一个Common Lisp编译器:将Lisp编译为'可维护'C.编译器非常昂贵。它已不再可用,但似乎仍在一两家公司中使用:Lisp to C。
答案 2 :(得分:0)
我只找到C->C++ converter。我不确定您是否可以将大多数功能语言转换为LISP。结构和语法不匹配。我相信你可以找到许多C ++转换器。
答案 3 :(得分:0)
内置的haskell编译器编译为C.尽管IIRC看起来并不那么漂亮 (已检查,162行 main = putStrLn“Hello,World!”
编辑:GHC当然。
答案 4 :(得分:0)
有一个名为Stalin的Scheme编译器可以生成高度优化的C源代码。