【问题标题】:Write C as s-expressions将 C 写为 s 表达式
【发布时间】:2011-01-05 01:36:39
【问题描述】:

我想用 s 表达式编写 C 并使用编译时宏。有人知道这样做的吗?它应该将 s 表达式转换为标准 C。

【问题讨论】:

  • 您能否举例说明您希望代码包含哪些 s 表达式? vatine 举了一个例子,但你说这不是你想要的。如果格式无关紧要,那么您能解释一下为什么要将其写为 s-expressions 吗?
  • everything2.com/title/….>

标签: c lisp s-expression


【解决方案1】:
【解决方案2】:

也许你想要ECL 之类的东西,它将Common Lisp 编译为C。

【讨论】:

    【解决方案3】:

    你是什么意思?大致如下:

    (c-表达式 (int main ((int argc) ((array (pointer char)) argv) (堵塞 (printf "%d 个参数\n" argc) (如果 (argc >= 1) (printf "第一个 arg 是 %s\n" (ref argv 1))) (返回 0)))) => "int main (int argc, char *argv[]) { printf("%d 个参数\n", argc); 如果 (argc >= 1) printf(第一个参数是 %s\n", argv[1]); 返回0; }

    如果是这样,是的,这绝对是可行的。然而,这并非完全无关紧要。

    【讨论】:

    • 有点像。虽然我不认为 s-expression 版本看起来很像你在那里所做的一些事情。
    【解决方案4】:

    看看Tasuku Hiraishi的SC。他来自 20052007 的国际 Lisp 会议论文存档在 archive.org。

    查看他的source repo,尤其是examples

    据我所知,这是将 S-Expression 风格的编码实践应用于一个普通的 C 项目的众多尝试中最好的一次。

    【讨论】:

      【解决方案5】:

      我知道这是一个旧帖子,但为了记录,我认为这是要求的内容。

      The "lispc" project 将以 s-expressions 样式编写的 c 程序翻译成 C。它工作得很好,如果您设置正确,甚至可以为您编译代码。

      不过,我不知道它目前会产生最易读的 C 代码输出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-02
        • 1970-01-01
        • 2019-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        相关资源
        最近更新 更多