Je veux écrire C dans des expressions-s et utiliser des macros de compilation. Est-ce que quelqu'un sait de quoi que ce soit qui fait cela? Il devrait se traduire par les s-expressions dans la norme C.Écrire C comme expressions-s
Répondre
connexes:
Le lien scexp ne fonctionne plus. Utilisez http://super.para.media.kyoto-u.ac.jp/~tasuku/sc/index.html – whoplisp
francogrex sur #lisp vous conseille d'utiliser http://www.isi.edu/isd/LOOM/Stella/ – whoplisp
Le lien vers kyoto-u.ac.jp n'est pas le même que le projet scexp (il génère aussi C et est assez gros). Ceci est un lien vers scexp: http://tenkan.org/~tim/scexp-0.9.tar.gz – whoplisp
Comment voulez-vous dire? Quelque chose du genre:
(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; }
Si c'est le cas, oui, c'est certainement faisable. Cependant, ce n'est pas entièrement trivial.
Un peu comme ça. Bien que je ne pense pas que la version s-expression ressemblerait à certaines des choses que vous avez faites là-bas. –
Peut-être que vous voulez quelque chose comme ECL, qui compile Common Lisp à C.
Jetez un coup d'oeil au SC de Tasuku Hiraishi. Ses papiers de conférence internationale Lisp de 2005 et 2007 sont archivés à archive.org. Voir son source repo, en particulier le examples. À ma connaissance, il s'agit de la meilleure des nombreuses tentatives visant à apporter des pratiques de codage de style S-Expression à un projet C autrement vanille.
Pourquoi? ............ –
Pourriez-vous donner un exemple des expressions s dans lesquelles vous voulez que le code soit? Vatine a donné un exemple, mais vous avez dit que ce n'était pas tout à fait ce que vous vouliez. Si le format n'a pas d'importance, pourriez-vous expliquer pourquoi vous voulez l'écrire comme s-expressions? –