Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Befehl interpretieren


ffprogramming - Di 09.03.10 09:51
Titel: Befehl interpretieren
Moin!
Ich hoffe ich habe die richtige Section getroffen.

Ich bin dabei ein Programm zur Lösung von numerischen Problemen am schreiben.
Nun soll mein Programm auch eine Scriptsprache(ich glaube dsa ist der richtige Ausdruck) bekommen, die es ermöglicht Dinge ausrechnen zu lassen:

Als erstes mal ein einfaches Beispiel, wie es denn aussehen könnte:


Quelltext
1:
ergebnis=12.45 + 25.4;                    


Wenn man diesesn Code jetzt ausführt sollte man die Lösung bekommen. Dies ließe sich jetzt noch einfach mit einer Split Methode realisieren. Aber der Nutzer könnte ja genauso gut ein array definieren, das Zahlen enthält, aus dem jetzt der Mittelwert berechnet wird:


Quelltext
1:
ergebnis=Mittelwert(ar[1,2,6,7]);                    


Ich habe gar keine Ahnung wie ich an so etwas rangehen könnte. Es wäre nett wenn jemand mir ein par Tipps geben könnte.
Schon einmal Danke.
Grüße
Filip


JüTho - Di 09.03.10 10:14

Das Stichwort lautet Parser bzw. Mathe-Parser. Dazu solltest du in Foren und auch über Wikipedia viele Vorschläge finden. Jürgen


jaenicke - Di 09.03.10 10:18

Da hast du dir ein sehr komplexes Thema ausgesucht. ;-)

Ein relativ einfach geschriebener Parser (naja, einfach ist relativ, aber für das Thema ist er relativ einfach :mrgreen:) für Delphi ist dieser:
http://code.google.com/p/castaliadelphiparser/
Dort lässt sich relativ gut nachvollziehen wie man sowas bauen kann.

Für dich reichen aber auch weniger komplizierte Versionen, wenn du nicht ganz so allgemeine Befehle zulassen willst, sondern nur eingeschränkte Möglichkeiten anbietest.


ffprogramming - Di 09.03.10 10:43

Danke schon einmal. Dann werde ich wohl die nächste Zeit damit beschäftigt sein einen Parser zu schreiben. (Ich möchte ihn gerne selbst schreiben).
Danke.


F34r0fTh3D4rk - Mi 10.03.10 15:35

Ich habe vor einiger Zeit einen Parser/Interpreter in Java geschrieben. Meine Vorgehensweise war dabei wie folgt:

Die Interpreter Funktion ist dann auch nur ein paar Zeilen lang.


delfiphan - Mi 10.03.10 19:41

Du kannst auch einfach den JScript Interpreter von Windows nehmen und einfach einbinden. Mehr als ein halbes Duzend Zeilen Code musst du dafür nicht schreiben. Kommt etwas darauf an, wie schnell das ganze sein muss und welche Sprachen für dich in Frage kommen.


JDKDelphi - Do 11.03.10 18:23

Hallo...

Kannst es ja mal mit meinem Rechenkern versuchen..

Der kann sowas..

Hatte ich hier mal gepostet


Viele Grüße