Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
503 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  générer du code java dynamiquement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

générer du code java dynamiquement

n°1630042
godbeni
Posté le 24-10-2007 à 12:27:29  profilanswer
 

Bonjour, dans le cadre d'une petite appli, je désire générer du code dynamiquement pour l'exemple suivant:
L'utilisateur entre une formule mathématique dans un champ de texte, par exemple e(2x) et je désire générer à partir de cette entrée une méthode java, par exemple  
 
double calc(double x){
return Math.exp(2*x);
}
 
Quelle approche dois-je adopter ? Quels sont les outils ?
 
Par avance merci.

mood
Publicité
Posté le 24-10-2007 à 12:27:29  profilanswer
 

n°1630108
gzii
court-circuit
Posté le 24-10-2007 à 13:25:24  profilanswer
 

Python ou un autre langage interprêté ne seraient ils pas plus adaptés ?

n°1630228
godbeni
Posté le 24-10-2007 à 14:59:18  profilanswer
 

gzii a écrit :

Python ou un autre langage interprêté ne seraient ils pas plus adaptés ?


merci pour ta suggestion mais je n'ai pas le choix du langage.

n°1630333
BifaceMcLe​OD
The HighGlandeur
Posté le 24-10-2007 à 16:43:17  profilanswer
 

Java est un langage compilé, pas interprété. Donc on n'est pas dans un monde dans lequel on peut s'amuser à "créer du code à la volée" (même si en Java, il y a des mécanismes qui rendent cela possible ; ceci dit, "possible" ne signifie pas "simple", bien au contraire).
 
Si ce que tu souhaites évaluer, c'est juste une expression mathématique, cela te sera plus simple de fabriquer une structure mémoire décrivant ton expression mathématique (c'est une forme de compilation). Par exemple sous forme d'arbre :

  exp
   |
   *
  / \
 2   +
    / \
   x   1


représenteront avantageusement l'expression "exp(2*(x+1))".
Chaque opérateur binaire (+, -, *, /, modulo) est transformé en un noeud de l'arbre à 2 noeuds fils, chaque opérateur unaire (- unaire pour obtenir l'opposé, et la plupart des fonctions mathématiques du genre sin, cos, exp, ln, ...) est transformé en un noeud à un seul fils, et les variables et les nombres littéraux sont transformés en noeuds sans aucun noeud fils (autrement dit, en feuilles de l'arbre).
 
Ensuite, une petite fonction d'évaluation qui parcourt récursivement ton arbre pourra te donner la valeur de la fonction pour une valeur quelconque de tes variables.
En plus, ce mécanisme te permettra de faire beaucoup d'autres traitements sur ta fonction mathématique que Java ne sait pas faire tout seul : par exemple, simplifier la fonction (0 * une expression bien compliquée = toujours 0 !), obtenir sa fonction dérivée, etc.


Message édité par BifaceMcLeOD le 24-10-2007 à 16:47:13
n°1630487
godbeni
Posté le 24-10-2007 à 21:21:21  profilanswer
 

merci pour ton conseil, je pense que je vais m'orienter dans cette direction dans un premier temps du moins :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  générer du code java dynamiquement

 

Sujets relatifs
[JAVA] Authentification avec LDAPInteropérabilité Java .NET
trouver taille du heap javaProblème pour générer la DTD de fichiers XML
Générer du xml à partir de php avec paramètres (pour rss)EasyPHP 2.0 beta 1 mon code php s'affiche dans ma page
Pour expert en env VC++6 - Importation d'un code C dans du C++Qui sait changer la version du compilateur Java Studio Creator 2.
Generer une liste d'ip a partir d'un masqueComment générer HTML avec XSL et XML
Plus de sujets relatifs à : générer du code java dynamiquement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR