【问题标题】:Which general purpose programming languages/implementations compile to C [closed]哪些通用编程语言/实现编译为 C [关闭]
【发布时间】:2015-05-16 04:06:50
【问题描述】:

我目前正在使用 Eiffel (SmartEiffel/ISE Eiffel),它正在编译为 c。

如果输出进入可移植的汇编语言(也称为 C),我发现使用新功能或工具支持自行扩展语言会容易得多。

哪种通用的、非功能性的语言也有这个特性。

我知道有过时的 C++ 预编译器,我什至发现了一个旧的用于 Objective-C 的预编译器。

(我也听说过((Scheme 和 Lisp)编译器),但我不喜欢这种(语言))。

请仅列出 FOSS(免费开源)项目,因为我需要研究它们。

【问题讨论】:

  • 应该是社区维基,因为没有一个正确的答案。
  • Haskell 的 GHC 编译器可以编译成 C。但是你不喜欢 Scheme 和 Lisp?!这意味着您不了解它们:)

标签: compiler-construction programming-languages


【解决方案1】:

Nim 是一种非常现代的语言,可以编译为 C
http://nim-lang.org

【讨论】:

    【解决方案2】:

    嗯,在处理异常和浮点数等问题时有一些注意事项,但 llvm 可以输出 C(尽管没有人在生产中使用它,因此它经常滞后于主版本)。这意味着任何可以静态编译的基于 LLVM 的语言都可以输出到 C,包括所有 llvm-gcc 前端:

    并非所有这些都必须经过测试,可能需要进行一些调整才能正常工作,但它们应该都能正常工作。

    【讨论】:

    • 好吧,我尝试摆脱大型项目 LLVM(在 Windows 上无法轻松安装和工作)和 gcc 后端。所以这对我来说不是真正的选择。
    • 你忘记了 Cython。它将 Python 编译为 C。尽管仍然使用同样用 C 编写的 python 标准库
    【解决方案3】:

    Vala,一种类似于 C# 的语言,它是 Gnome 项目的一部分。

    【讨论】:

      【解决方案4】:

      SatherMercuryFelixSeed7 和许多其他...编译器生成 C(或 C++)是很常见的,通常被视为“可移植的汇编语言”,它具有依靠 C 编译器编写者的经验进行优化的额外优势。

      【讨论】:

        【解决方案5】:

        haXe.org:一种可以编译成各种语言的语言,包括 C++。

        【讨论】:

          【解决方案6】:

          Fortran (http://en.wikipedia.org/wiki/F2c) COBOL (http://sourceforge.net/projects/open-cobol/) Perl (http://www.xav.com/perl/lib/B/C.html) MATLAB

          我曾经认识一个人,他想研究如何编写解析器,但当时不想为代码生成而烦恼。所以,他让他的解析器在 C 中打印出简单的语句、表达式和 goto。所以,这将是一个编译为 C 的 C 编译器(尽管 C 非常糟糕):-)

          【讨论】:

          • 还有一个人想写一门面向对象的语言,他采取了同样的方法——你不会相信它造成的麻烦。
          • @MartinBeckett Bjarne Stroustrup ?
          【解决方案7】:

          ooc (http://ooc-lang.org/), Virgil (http://compilers.cs.ucla.edu/virgil/overview.html), 是旧版本的 Algol-to-C 翻译器 (废弃)

          【讨论】:

            【解决方案8】:

            Cython 声称将 Python 编译为 C

            【讨论】:

              猜你喜欢
              • 2010-10-16
              • 1970-01-01
              • 2011-02-07
              • 2011-02-21
              • 2012-07-26
              • 2017-09-18
              • 2016-05-30
              • 2011-01-13
              • 2011-07-17
              相关资源
              最近更新 更多