OVH Cloud OVH Cloud

Y-a-t'il des nouvelles consernant un analyseur numérique ?

11 réponses
Avatar
Nicolas CHARLOT
Bonjour,

J'ai vu les post présents concernant la méthode eval() ainsi que sur les
analyseurs numériques...

Y-a-t'il du neuf à ce sujet, car je cherche précisément le moyen
d'analyser une expression arithmétique du style "3-(2+1)/(4*3)" ?

Merci d'avance

Nico

10 réponses

1 2
Avatar
Nicolas Delsaux
Le 16.10 2003, Nicolas CHARLOT s'est levé(e) et s'est
dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"

Bonjour,

J'ai vu les post présents concernant la méthode eval() ainsi que sur les
analyseurs numériques...

Y-a-t'il du neuf à ce sujet, car je cherche précisément le moyen
d'analyser une expression arithmétique du style "3-(2+1)/(4*3)" ?


Tu confonds javascript et Java, non ?

fu2 fr.comp.lang.javascript

Merci d'avance

Nico




--
Nicolas Delsaux
"Rendez-vous compte de la sottise qu'il y a à permettre aux gens de jouer à
des jeux compliqués qui ne font absolument rien pour accroître la
consommation."
Le meilleur des mondes - Aldous Huxley

Avatar
Nicolas CHARLOT
Le 16.10 2003, Nicolas CHARLOT s'est levé(e) et s'est
dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"


Bonjour,

J'ai vu les post présents concernant la méthode eval() ainsi que sur les
analyseurs numériques...

Y-a-t'il du neuf à ce sujet, car je cherche précisément le moyen
d'analyser une expression arithmétique du style "3-(2+1)/(4*3)" ?



Tu confonds javascript et Java, non ?


Merci d'avance

Nico





Non justement, ce serait bien qu'il y ait une méthode équivalente en

Java... Je sais qu'il y a eu des posts à ce sujet sur ce NG mais sans
aboutissement.

Je voulais donc savoir si les personnes qui se sont intéressées à ce
problème ont aboutis.


Avatar
Nicolas Delsaux
Le 17.10 2003, Nicolas CHARLOT s'est levé(e) et
s'est dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"

Non justement, ce serait bien qu'il y ait une méthode équivalente en
Java... Je sais qu'il y a eu des posts à ce sujet sur ce NG mais sans
aboutissement.


Donc, ce que tu cherches, c'est interpréter en Java du code Java ?
il existe plusieurs approches pour résoudre ce problème :
- l'utilsiation d'un interpréteur comme beanshell, dynamicJava et autres
permet de faire ce genre de choses, mais avec certaines limitations
(difficile d'écrire des classes, peut-être une certaine lenteur, et
"tolérance" de l'interpréteur choisi).
- la compilation à la volée. C'est la technique qui a mes faveurs : elle
consiste à fournir à l'utilisateur un éditeur de code Java, dans lequel il
écrit une classe (généralement la sous-classe d'une classe de base). Cette
classe est ensuite compilée, chargée avec un ClassLoader sécurisé, et
instanciée comme n'importe quelle classe Java. Cette méthode présente
l'avantage de fournir des classes Java indiscernables de la plateforme,
avec cependant la nécessité de coder un SecurityManager efficace (pour
éviter l'introduction de "code malicieux").

Je voulais donc savoir si les personnes qui se sont intéressées à ce
problème ont aboutis.

J'espère pour elles ...


--
Nicolas Delsaux
JFS > Imaginer que des ingénieurs puissent reprendre le contrôle de quoi
que ce soit... Pas de doute, on est bien sur un forum de SF !
in fras en perte de contrôle

Avatar
Emmanuel Bourg
Pour l'analyse d'expressions mathématiques tu as JEP :
http://jep.sf.net

Emmanuel


Nicolas CHARLOT wrote:

Bonjour,

J'ai vu les post présents concernant la méthode eval() ainsi que su r les
analyseurs numériques...

Y-a-t'il du neuf à ce sujet, car je cherche précisément le moyen
d'analyser une expression arithmétique du style "3-(2+1)/(4*3)" ?

Merci d'avance

Nico



Avatar
jerome moliere
Ca a l'air vraiment puissant JEP !
Il y a cependant un gros souci : cet analyseur n'est pas destiné à une
application Java habituelle, il s'agit en effet de superwaba, la vm pour
pda. Il me faut donc une classe utilisant des objets vraiments basiques
et étant très légère...

J'ai déjà une classe qui fonctionne mais elle est trop lente.
Le but étant de réaliser un solveur d'équation numérique tel que 3*a.
J'ai terminer l'optimisation du solveur, mais le calcul reste lent car
l'analyseur met trop de temps à calculer.

même réponse pour cette question que pour les 1000 identiques précédentes:

un parser dédié généré via JavaCC ou ANTLR
cela ne peut être plus optimisé à ta grammaire

Jerome

Avatar
Nicolas CHARLOT
Pour l'analyse d'expressions mathématiques tu as JEP :
http://jep.sf.net

Emmanuel


Nicolas CHARLOT wrote:

Bonjour,

J'ai vu les post présents concernant la méthode eval() ainsi que sur
les analyseurs numériques...

Y-a-t'il du neuf à ce sujet, car je cherche précisément le moyen
d'analyser une expression arithmétique du style "3-(2+1)/(4*3)" ?

Merci d'avance

Nico



Ca a l'air vraiment puissant JEP !

Il y a cependant un gros souci : cet analyseur n'est pas destiné à une
application Java habituelle, il s'agit en effet de superwaba, la vm pour
pda. Il me faut donc une classe utilisant des objets vraiments basiques
et étant très légère...

J'ai déjà une classe qui fonctionne mais elle est trop lente.
Le but étant de réaliser un solveur d'équation numérique tel que 3*a.
J'ai terminer l'optimisation du solveur, mais le calcul reste lent car
l'analyseur met trop de temps à calculer.


Avatar
Nicolas CHARLOT


Ca a l'air vraiment puissant JEP !
Il y a cependant un gros souci : cet analyseur n'est pas destiné à une
application Java habituelle, il s'agit en effet de superwaba, la vm
pour pda. Il me faut donc une classe utilisant des objets vraiments
basiques et étant très légère...

J'ai déjà une classe qui fonctionne mais elle est trop lente.
Le but étant de réaliser un solveur d'équation numérique tel que 3*a.
J'ai terminer l'optimisation du solveur, mais le calcul reste lent car
l'analyseur met trop de temps à calculer.

même réponse pour cette question que pour les 1000 identiques précédentes:

un parser dédié généré via JavaCC ou ANTLR
cela ne peut être plus optimisé à ta grammaire

Jerome



Penses-tu vraiment qu'il soit possible de mettre en place JavaCC ou
ANTLR sur un PDA ???


Avatar
Emmanuel Puybaret
Bonjour,

J'ai vu les post présents concernant la méthode eval() ainsi que sur les
analyseurs numériques...

Y-a-t'il du neuf à ce sujet, car je cherche précisément le moyen
d'analyser une expression arithmétique du style "3-(2+1)/(4*3)" ?


Il me semble que JeksParser correspond à ce que tu cherches. Tu peux choisir
différentes syntaxes...

http://www.eteks.com/jeks/#WhatJeksParser

Cordialement
--
Emmanuel PUYBARET
Email :
Web : http://www.eteks.com
Auteur du Cahier du programmeur Java [1] / Editions Eyrolles :
http://www.eteks.com/services/cahierjava1.html

Avatar
jerome moliere
Penses-tu vraiment qu'il soit possible de mettre en place JavaCC ou
ANTLR sur un PDA ???

beinh oui !!!

tu generes ton lexer et ton parser pour ta grammaire sur ton PC, tu
recuperes la sortie de JavaCC/ANTLR (un package de classes Java)
et tu l'exécutes sur ton PDA....
si t'as pas de VM t'es mal, mais c'est la seule contrainte....


jerome

Avatar
Nicolas Repiquet
"jerome moliere" a écrit dans le message news:
bmp2ue$172v$

même réponse pour cette question que pour les 1000 identiques précédentes:
un parser dédié généré via JavaCC ou ANTLR
cela ne peut être plus optimisé à ta grammaire

Jerome


SableCC aussi qui est bien sympa.

-- Nicolas Repiquet

1 2