2

我有一个想法来创建脚本语言,它可以让人们更轻松地编写大量宏、函数、更简单的函数名称,让简单的人使用起来更简单。该代码(自定义脚本语言)然后应该被翻译成简单的 C 语言的东西。像这样:

Scripting:
IO[9].high
@include "lib"
for (int i=0 to 55)

end
C:
IO |= (1<<9);
#include "lib.h"
int i = 0;
for (i=0; i<55; i++) {

}

是否有可能以某种方式有效地编写这种可以很好地输出到 c 代码的宏/脚本语言?

4

3 回答 3

3

绝对地; 一些编译(或已经编译)成 C 的语言包括 Eiffel、Haskell (GHC)、Vala 和 Squeak。早期版本的 C++ 是作为 C++ 到 C 的转换器 (CFront) 实现的。

一般概念是一种中间语言。提到 C 被用作中间语言;通过使用 C 编译器,您可以获得与许多语言和库的二进制兼容性,并且不必编写自己的编译器;Ritchie 将 C 描述为一种“可移植的汇编语言”。

但是,与 C++ 一样,您可能很快就会发现以 C 为目标的限制过于严格。GHC 正在转向一种名为C--的专用中间语言,您可能会发现使用LLVM 工具链(本质上是针对 LLVM 中间表示)是一种更好的多平台兼容性方法。

于 2012-07-10T12:21:02.457 回答
3

感谢 PyPy,可以将 Python 代码的子集翻译成 c。

有关详细信息,请参阅以下参考: http ://doc.pypy.org/en/latest/translation.html

另请参阅以下问题,这基本上是您将 Python 指定为脚本语言的问题:Use Cython as Python to C Converter

于 2012-07-10T15:17:46.200 回答
1

例如,您是否看过netsnmp的 mib2c 脚本?它使用脚本生成 C 源代码。你可以参考那个以获得更多的想法。

于 2012-07-10T12:33:00.657 回答