2010-01-14 7 views
9

Я хочу написать C в s-выражениях и использовать макросы времени компиляции. Кто-нибудь знает что-нибудь, что делает это? Он должен перевести S-выражение в стандартный С.Запись C как s-выражения

+3

Почему? ............ –

+0

Не могли бы вы привести пример того, какие s-выражения вы хотите, чтобы код находился? ватина привела пример, но вы сказали, что это не совсем то, что вы хотели. Если формат не имеет значения, вы могли бы объяснить, почему вы хотите записать его как s-выражения? –

+0

ответ

7
+0

Ссылка scexp больше не работает. Используйте http://super.para.media.kyoto-u.ac.jp/~tasuku/sc/index.html – whoplisp

+0

francogrex на #lisp советует использовать http://www.isi.edu/isd/LOOM/Stella/ – whoplisp

+0

Ссылка на kyoto-u.ac.jp не совпадает с проектом scexp (он также генерирует C и довольно большой). Это ссылка на scexp: http://tenkan.org/~tim/scexp-0.9.tar.gz – whoplisp

2

Как вы имеете в виду? Что-то в строках:

 
(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; 
} 

Если да, то это определенно выполнимо. Однако это не совсем тривиально.

+0

Вот как. Хотя я не думаю, что версия s-выражения выглядела бы так же, как некоторые из вещей, которые вы там делали. –

2

Может быть, вы хотите что-то вроде ECL, который компилирует Common Lisp к C.

0

Посмотрите SC Tasuku Хираиши в. Его международные документы Лиспской конференции от 2005 и 2007 архивируются в архиве.org.

См. Его source repo, в частности examples.

Насколько я знаю, это лучшая из многих попыток привнести методы кодирования стиля S-Expression в другой проект Vanilla C.

 Смежные вопросы

  • Нет связанных вопросов^_^