Compiler construction 关于函数式编程语言的这种说法正确吗?

Compiler construction 关于函数式编程语言的这种说法正确吗?,compiler-construction,functional-programming,transpiler,Compiler Construction,Functional Programming,Transpiler,我在读一本关于编译器设计的书,书中有一部分说 不同语言的编译器的主要区别在于它们生成的代码。一般来说,命令式语言和面向对象语言的编译器可以用汇编语言生成代码;而函数语言编译器则是用C或C++生成的。 关于C/C++的最后一部分正确吗?我无法通过谷歌搜索找到任何东西,所以我在这里问 关于C/C++的最后一部分正确吗 不,不是 有些语言确实编译成C,但这并不是函数式语言所特有的。如果这在函数式语言中比在非函数式语言中更为常见,那么在一定程度上,人们可能不会将其称为函数式语言的属性 此外,大多数现实世

我在读一本关于编译器设计的书,书中有一部分说

不同语言的编译器的主要区别在于它们生成的代码。一般来说,命令式语言和面向对象语言的编译器可以用汇编语言生成代码;而函数语言编译器则是用C或C++生成的。 关于C/C++的最后一部分正确吗?我无法通过谷歌搜索找到任何东西,所以我在这里问

关于C/C++的最后一部分正确吗

不,不是

有些语言确实编译成C,但这并不是函数式语言所特有的。如果这在函数式语言中比在非函数式语言中更为常见,那么在一定程度上,人们可能不会将其称为函数式语言的属性

此外,大多数现实世界中的函数式编程语言(通过它们的官方和/或最常用的实现)编译成C语言的情况肯定不是这样。如果我列出我能想到的前十种函数式编程语言/实现(Haskell(GHC,Hugs)、OCaml、F#、Scala、Clojure、Racket、Common-Lisp(SBCL,CLisp)),就我所知,它们都不能编译成C。GHC曾经有一个C后端,但现在已经停止了

我能想到的两种主要实现编译成C的语言是Vala和Haxe,它们都不是函数式语言。在其中一个链接线程中,提到了鸡肉方案。这是一个比较有名的使用C的实现。这几乎不足以证明这是“一般”情况

关于C/C++的最后一部分正确吗

不,不是

有些语言确实编译成C,但这并不是函数式语言所特有的。如果这在函数式语言中比在非函数式语言中更为常见,那么在一定程度上,人们可能不会将其称为函数式语言的属性

此外,大多数现实世界中的函数式编程语言(通过它们的官方和/或最常用的实现)编译成C语言的情况肯定不是这样。如果我列出我能想到的前十种函数式编程语言/实现(Haskell(GHC,Hugs)、OCaml、F#、Scala、Clojure、Racket、Common-Lisp(SBCL,CLisp)),就我所知,它们都不能编译成C。GHC曾经有一个C后端,但现在已经停止了


我能想到的两种主要实现编译成C的语言是Vala和Haxe,它们都不是函数式语言。在其中一个链接线程中,提到了鸡肉方案。因此,这是一个使用C的相对知名的实现。这几乎不足以证明“通常”是这样的说法。

是的,C是高级语言的流行中间格式,因为每个体系结构都有C编译器。From:“它的可移植性非常好,可以快速编译,优化效果很好,并且可以与大量的东西进行互操作。”。然而,使用函数范式的语言通常是更高级的,所以你很可能会在这一类中找到它们。另请参见@Bergi的跨站点副本。我的教科书还有很多其他事实上的错误,所以我对此有点怀疑。谢谢这些链接。这本书有多旧?二十年前它比现在更精确。是的,C是高级语言的一种流行中间格式,因为每种体系结构都有C编译器。From:“它的可移植性非常好,可以快速编译,优化效果很好,并且可以与大量的东西进行互操作。”。然而,使用函数范式的语言通常是更高级的,所以你很可能会在这一类中找到它们。另请参见@Bergi的跨站点副本。我的教科书还有很多其他事实上的错误,所以我对此有点怀疑。谢谢这些链接。这本书有多旧?二十年前它比现在更精确。我的函数式语言编译器发出LLVM-IR。我的函数式语言编译器发出LLVM-IR。