Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Auto-génération de code à la volée

Posté par Val1472 () le 22 juin 2007
Salut à toi Journal !

Je t'écris pour te poser une question "technique", limite philosophique.

Suite à ce journal : http://linuxfr.org/~Montaigne/24628.html, je me suis demandé comment pourrait faire une application sous linux en user-space, pour auto-générer son code. Je cherchais une solution efficace et performante (en c par exemple).

La première solution à laquelle j'ai pensé est relativement sale : j'écris du code dans un .c (fwrite...), je le compile avec un appel à gcc (system...) sous forme de .so que j'ouvre avec dlopen.

En deuxième solution, je voyais "smasher" la stack de mon propre programme, mais là je trouve ça... inqualifiablement affreux.

Cher lecteur, connais-tu une solution à cet épineux problème ? A noter que je n'y vois pas d'intérêt pratique, c'est juste pour la culture.

Merci !

> Lire le journal (24 commentaires, moyenne: 3).  

Vous avez demandé le commentaire #844520.

Gnu Lightning

Posté par PenPen () le 22/06/2007 à 18:28. (lien). Évalué à 3.

Suivant ce que tu veut faire, il y a gnu lightning qui existe depuis pas mal de temps et réponds à une moitié du problème (pseudo asm -> binaire -> exec).
Reste à faire un parser pour produire du code dans leur format.

http://www.gnu.org/software/lightning/lightning.html

Cela dit, pourquoi tu veut compiler le code à la volée? Ce serait plus simple de prendre un truc comme lua, que tu peut binder assez facilement avec du c.

  • [^]Re: Gnu Lightning

    Posté par Val1472 () le 25/06/2007 à 10:48. (lien). Évalué à 1.

    Merci PenPen. Je ne connaissais pas cette librairie. C'est exactement le genre de choses que je recherchais. :)

    J'ai un mauvais à priori concernant les performances d'une solution qui embarque du lua, du python ou du script en règle générale. Ca reste qu'un à priori. Un jour, je prendrais le temps de faire des benchs pour me faire une idée plus précise.

    • [^]Re: Gnu Lightning

      Posté par briaeros007 () le 26/06/2007 à 20:15. (lien). Évalué à 2.

      ben le script ca permet de gagner du temps ... sur les parties non critiques (exemple pour python : parser une conf puis l'injecter dans du C ;))
      (temps de code).

      Ensuite si ta fonction est appelé 15 millions de fois en une seconde, oui il est preferable de bien l'optimiser celle la;)

      --
      Subete ga wakatta toki…watashi ga anta wo korosu.