编译为c的高级系统语言?

时间:2012-03-20 02:27:05

标签: c programming-languages cross-platform high-level

我正在寻找更高级别的系统语言,如果可能的话,适用于正式验证,编译成标准C,以便它可以跨平台运行(相对)低开销。

过去几天我遇到的两种最有前途的语言是:

  1. BitC - 虽然这种语言的设计目标符合我的需求(它甚至支持功能范例),但它处于非常不稳定的状态,文档已经过时,而且通常看起来很像为实际项目做好准备。

  2. Lisaac - 它支持按合同设计,这非常酷,性能开销相对较低。然而,该网站已经死了,自08年以来一直没有新版本,而且通常看起来语言已经死了。

  3. 我还要注意,它并不适用于实时系统,因此GC或通常是非确定性(实时意义上的)不是问题

    该项目主要涉及音频处理,但必须是跨平台的。

    我认为有人会指出我明显的答案 - "普通的' C&#34 ;.虽然它确实是跨平台且非常有效的,但代码数量可能更大。

    编辑:我应该澄清,我的意思是跨平台和跨架构。这就是为什么我只考虑编译为C语言的原因,但如果你能指出我的另一个例子,我将不胜感激:)

2 个答案:

答案 0 :(得分:3)

我想你可能会对ATS产生兴趣。它编译成C(实际上它从正式的类型理论的角度来表达和解释许多C语言和模式,它甚至被提议准备一本书来展示这一点 - 如果我们有更多的时间......)。

  

该项目主要涉及音频处理,但必须是跨平台的。

我对音频处理知之甚少,我一直主要做一些计算机图形学的东西(大多数是基本的东西,只是为了尝试一下)。

另外,我不确定ATS是否适用于Windows(从未尝试过)。

(免责声明:我已经和ATS合作了一段时间。它庞大而且语言庞大,有时难以使用,但我非常喜欢我能用它制作的程序的质量,因为实例,请参阅GLES2 bindings中的TEST子目录以获取一些真实的程序)

答案 1 :(得分:2)

以下并未严格遵守要求,但无论如何我想提及它,评论时间过长:

Pypy的RPython可以翻译成C. Here's a nice talk about it。它已被用于实现Smalltalk, JavaScript, Io, Scheme, Gameboy(具有不同程度的完整性),但您可以在其中编写独立程序。它主要用于实现Python语言runs on Intel x86 (IA-32) and x86_64 platforms

翻译过程需要一个功能强大的C编译器。工具链提供了用于推断有关代码的各种事物(由翻译过程本身使用)的方法,您可以将其重新用于形式验证。

如果您同时了解Python和C,则可以使用cython将类似Python的语法转换为C.它用于编写CPython扩展。