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

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 に答える
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 に答える
1

たとえば、 netsnmp のmib2cスクリプトを見たことがありますか?. スクリプトを使用して C ソースを生成します。より多くのアイデアを得るためにそれを参照できます。

于 2012-07-10T12:33:00.657 に答える