質問

C を S 式で記述し、コンパイル時マクロを使用したいと考えています。誰かこれを行うものを知っていますか?s 式を標準 C に変換する必要があります。

他のヒント

おそらく、あなたがCにはCommon Lispをコンパイル ECL のようなものを、欲しいます。

あなたはどのような意味ですか?線に沿って何かます:

(c-expression 
  (int main ((int argc) ((array (pointer char)) argv)
    (block
      (printf "%d arguments\n" argc)
      (if (argc >= 1)
        (printf "The first arg is %s\n" (ref argv 1)))
      (return 0))))
=>
"int main (int argc, char *argv[])
{
  printf("%d arguments\n", argc);
  if (argc >= 1)
    printf(The first arg is %s\n", argv[1]);
  return 0;
}

もしそうならば、はい、それは間違いなくなんとかです。しかし、それは全く簡単ではないのです。

平石佑選手のSCを見てみましょう。彼の国際 Lisp カンファレンスの論文は、 2005 そして 2007 archive.org にアーカイブされています。

彼のことを見てください ソースリポジトリ, 、特に .

私の知る限り、これは、普通の C プロジェクトに S-Expression スタイルのコーディング手法を適用するための多くの試みの中で最良のものです。

私は、これは古い記事ですけど、記録のために、私はこれがために求められているものだと思います。

C.にS式のスタイルで書かれたCプログラムを変換する

このプロジェクトでは、それは素晴らしい作品とあなたは右のそれを設定している場合でも、あなたのためのコードをコンパイルします。

私はそれが現時点では最も読みやすいCコード出力を生成することを知りません。

scroll top