是否有可能编写转换为C代码的脚本语言?

时间:2012-07-10 11:44:50

标签: c scripting macros programming-languages scripting-language

我有一个想法是创建脚本语言,这将使人们编程更容易做很多宏,函数,更简单的函数名称,更简单的人使用更简单。那个代码(自定义脚本语言)应该被翻译成简单的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代码的宏/脚本语言?

3 个答案:

答案 0 :(得分:3)

绝对;编译(或编译)成C语言的一些语言包括Eiffel,Haskell(GHC),Vala和Squeak。早期版本的C ++实现为C ++-to-C转换器(CFront)。

一般概念是intermediate language。 C被称为used as an intermediate language;通过使用C编译器,您可以获得与许多语言和库的二进制兼容性,并避免编写自己的编译器; Ritchie将C描述为用作“portable assembly language”。

但是,与C ++一样,您可能很快发现目标C变得过于严格; GHC正朝着一种名为C--的专用中间语言发展,你可能会发现使用LLVM toolchain(基本上是针对LLVM中间表示)是一种更好的多平台兼容性方法。

答案 1 :(得分:3)

感谢PyPy,可以将Python代码的子集转换为c。

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

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

答案 2 :(得分:1)

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