Laden...

Programm zur Laufzeit editieren. Wie???

Erstellt von socco vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.548 Views
Thema geschlossen
S
socco Themenstarter:in
10 Beiträge seit 2011
vor 12 Jahren
Programm zur Laufzeit editieren. Wie???

Hallo,
ich überlege grade wie ich folgendes umsetzen kann:
Ein Programm das dem Benutzer erlaubt den Ablauf des Programms zu steuern.
Konkretes Beispiel:
Ich habe eine Bibliothek (in DLL Vorm) von Funktionen die in C, C++ und in C# vorliegt - für jede Sprache eine eigene Dll.
Ich möchte dem benutzer meines Programms erlauben diese Funktionen aufzurufen - oder besser gesagt, es soll möglich sein daraus ein eigenes programm zur Laufzeit zu schreiben.
Also wenn meine Dll diese funktionen hat:
GetImage(source)
FilterImage(FilterType)
ShowImage();
usw.
möchte ich dem benutzer erlauben die Reihenfolge und die Bedingung (if,while....) der Funktionsaufrufe selber festzulegen. Einerseits sollte das Pregramm sofort zur laufzeit interpretiert werden andrerseits muss ich eine Art hoch performanten Code daraus generieren können.(Nicht gleichzeitig sondern auf Knopfdruck, also 2 modi)
Gibt es tools die das können oder muss ich es selber schreiben.
Ich bin dankbar für jede Hilfe in jede Richtung.
Danke.

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo socco,

ich denke Generic Manipulator Tool wird dir weiterhelfen (können) bzw. als Inspiration dienen.

möchte ich dem benutzer erlauben die Reihenfolge und die Bedingung (if,while....) der Funktionsaufrufe selber festzulegen.

Das ist auch sowas wie mit Workflows möglich ist - schau mal ob du was findest wie das zur Laufzeit einsetzbar ist. Ich hab auf die Schnelle Modifying Workflow Models at Runtime With Workflow Change gefunden.

Gibt es tools die das können oder muss ich es selber schreiben.

Wenn du die Sprache frei wählen kannst ev. Matlab/Simulink.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

107 Beiträge seit 2011
vor 12 Jahren

Mir würden dazu einfache Compiler Generator einfallen.

q.e.d.

S
socco Themenstarter:in
10 Beiträge seit 2011
vor 12 Jahren

@ProgrammierTroll
Führ doch deinen Gedanken weiter 😃 - meinst du ich müsste einen eigenen Compiler schreiben. Ich habe jetzt schon überlegt das der Benutzer eine Art auswahl an Funktionen erhält und wenn er eine anklickt wird diese auf seinem Bildschirm angezeigt und zusätzlich C konform in eine Datei geschrieben und wenn ich irgendeinen freeware compiler automatisieren könnte auch gleich compiliert

meine Datei würde dann so aussehen:

int main()
{
   //Hier kommen alle Funktionen rein die der benutzer anklickt

   GetImage();
   ....
   ....

Der kompiler sucht dann nach dieser datei und kompiliert diese und führt sie auch aus bei Bedarf. Aber irgendwie scheint es der falsche Weg zu sein wenn ich darüber nachdenke.

U
1.578 Beiträge seit 2009
vor 12 Jahren
C
1.214 Beiträge seit 2006
vor 12 Jahren

Das hört sich für mich so an, als würdest du dein Programm "scriptbar" machen wollen. Das ist gar kein Problem, es gibt etliche Skriptsprachen, die man in eigene Programme einbetten kann, z.B. LUA, Python etc. Deine Bibliotheksfunktionen müsstest du dann bei der Scripting Engine registrieren. Dafür gibts schon etliche Beispiele.
Kompilieren muss man das ganze meiner Ansicht nach nicht. Wenn du das doch kompilieren möchtest, sollte das auch kein großes Problem darstellen, z.B. .NET Code kann man relativ einfach zur Laufzeit generieren, gibts auch etliche Beispiele dafür. Auch einen eigenen Compiler zu schreiben ist nicht übermäßig kompliziert. z.B. mit ANTLR (oder ähnlichen Tools, gibt viele in verschiedenen Geschmacksrichtungen) kannst du aus einer Grammatik einen Scanner und Parser generieren und dafür einen Interpreter oder Compiler schreiben.

Hinweis von gfoidl vor 12 Jahren

Wegen [Hinweis] Wie poste ich richtig? Punkt 2.2 ==> geschlossen

Thema geschlossen