Domanda
Voglio scrivere C in S-espressioni e utilizzare in fase di compilazione macro. Qualcuno sa di tutto ciò che fa questo? Si dovrebbe trasferire gli s-espressioni in standard C.
Altri suggerimenti
Forse si vuole qualcosa di simile a ECL , che compila Common Lisp a C.
In che senso? Qualcosa sulla falsariga di:
(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; }
Se è così, sì, è sicuramente fattibile. Tuttavia, non è del tutto banale.
Dai un'occhiata alla SC di Tasuku Hiraishi. Le sue carte Conferenza internazionale Lisp da 2005 e 2007 sono archiviati in archive.org.
repo , in particolare la esempi .
A mia conoscenza che è il migliore dei molti tentativi di portare lo stile-Expression S codifica pratiche esercitate su un progetto altrimenti vaniglia C.
So che questo è un vecchio post, ma per la cronaca, credo che questo sia ciò che viene chiesto.
Questo progetto traduce programmi C scritto in uno stile s-espressioni a C. E le grandi opere e anche compila il codice per voi, se lo si imposta a destra.
Non so che produce l'output di codice C più leggibile al momento però.