Multi: Scripting-API für C oder C++ unter Linux

Mahlzeit,
ich benötige für ein Projekt die Möglichkeit, in einer Software extern die Abläufe scripten zu können.
Die Anwendung wird in C oder C++ unter Linux (aktuell Debian) auf ner i386 oder amd64-Plattform entstehen. Vorraussichtlich eine Glade-Anwendung.

Was ich dabei benötige:

  • relativ einfaches erlernen aber auch Möglichkeiten für komplexe Ablaufsteuerung
  • möglichst ohne Kompilierung lauffähig
  • möglichst kein Geschwindigkeitsverlust gegenüber nativer C-Programmierung

Der Speicherverbrauch und die Grösse der Dateien sind dabei zweitrangig.
Opensource ist natürlich wünschenswert um evtl. Anpassungen vornehmen zu können. Kostenlos darf es sein ist aber nicht zwingend, da es sich um ein komerzielles Projekt handelt.

Eine Frage noch nachgeschoben: Hat jemand Erfahrung gemacht wie der Laufzeitunterschied zwischen Perl und C++ bei Glade-Anwendungen ist?

  1. Hallo,

    ich benötige für ein Projekt die Möglichkeit, in einer Software extern die Abläufe scripten zu können.

    also eine Script-Engine zum Einbau in ein eigenes Projekt?
    Wie mächtig darf's denn sein?

    Spidermonkey: Mozilla's Javascript Engine (mehr darüber in Wikipedia)
    SEE: Simple ECMA Engine
    Ch: Embeddable C/C++ interpreter (mehr darüber in Wikipedia)

    • relativ einfaches erlernen aber auch Möglichkeiten für komplexe Ablaufsteuerung

    Gilt Javascript/ECMA Script/C noch als einfach zu erlernen?

    • möglichst ohne Kompilierung lauffähig
    • möglichst kein Geschwindigkeitsverlust gegenüber nativer C-Programmierung

    Die beiden Punkte stehen natürlich etwas im Widerspruch zueinander ...

    So long,
     Martin

    --
    Lieber eine Fliege im Porzellanladen
    als ein Elefant in der Suppe.
    1. also eine Script-Engine zum Einbau in ein eigenes Projekt?
      Wie mächtig darf's denn sein?

      Richtig mächtig. Soll viel können aber auch einfache Dinge einfach umsetzen lassen.

      Spidermonkey: Mozilla's Javascript Engine (mehr darüber in Wikipedia)
      SEE: Simple ECMA Engine
      Ch: Embeddable C/C++ interpreter (mehr darüber in Wikipedia)

      Seh ich mir alle an, danke.

      • relativ einfaches erlernen aber auch Möglichkeiten für komplexe Ablaufsteuerung

      Gilt Javascript/ECMA Script/C noch als einfach zu erlernen?

      Ist ja alles relativ ;)
      Für mich wäre es wohl schwer, Whitespace oder Ook! zu lernen, für andere ist HTML schon eine unüberwindbare hürde obwohl es nichtmal ne Programmiersprache ist.

      • möglichst ohne Kompilierung lauffähig
      • möglichst kein Geschwindigkeitsverlust gegenüber nativer C-Programmierung

      Die beiden Punkte stehen natürlich etwas im Widerspruch zueinander ...

      Stimmt. Mir ist es natürlich lieber, ich muss kompilieren (kann ja automatisiert werden) und es läuft richtig schnell. Gut wäre aber, wenn ein Probelauf ohne Kompilierung möglich ist. Ob das die genannten Möglichkeiten bieten, schau ich mir auf jeden Fall an.

  2. Hi Multi,

    selber habe ich Lua noch nicht verwendet, aber es könnte für dich interessant sein.

    MfG
    Otto

    1. Hi Otto,

      selber habe ich Lua noch nicht verwendet, aber es könnte für dich interessant sein.

      das liest sich echt interessant. Da es in einigen Games verwendet wird, sollte es ziemlich passend für mich sein. Gibts für alle Ansi-C Plattformen und durch die kommerzielle Nutzung wohl auch gut geplegt.

      Jetzt muss ich mir nur noch ansehen ob der Funktionsumfang ausreichend ist für meine Zecke.

      1. Hallo Multi.

        das liest sich echt interessant. Da es in einigen Games verwendet wird, sollte es ziemlich passend für mich sein. Gibts für alle Ansi-C Plattformen und durch die kommerzielle Nutzung wohl auch gut geplegt.

        Jetzt muss ich mir nur noch ansehen ob der Funktionsumfang ausreichend ist für meine Zecke.

        Adobe Lightroom besteht zu ca. 60% aus Lua.
        Interessante Folien eines Adobe-Entwicklers dazu gibts auch.

        Servus,
        Flo

      2. Ich programmiere seit ein paar Jahren bei privaten Projekten in Lua. Die Sprache ist angenehm einfach gehalten, mit enorm mächtigen Tabellenobjekten, die zusammen mit etwas syntaktischem Zucker einfache Objektorierung erlauben.

        Außerdem gibt es ein paar schöne Abkürzungen, etwa über das logische and/or Abfragen ohne if zusammenzufassen. Man kann über die globale Umgebung "_G" auf die Tabelle der globalen Funktionalität zugreifen und diese erweitern oder sogar überschreiben.

        Die eingebauten RegExp sind schneller, aber weniger mächtig als PCRE, die jedoch mit einem externen Modul nachgerüstet werden können. Überhaupt gibt es einige Module für die Sprache, teilweise in Lua geschrieben, manche auch in C.

        Ich habe letztes Jahr eine Kurzanleitung für Lua geschrieben (als txt). Wenn Du mir eine Mail an alexthkloss@web.de schickst, sende ich sie Dir.

        Gruß, LX

        --
        RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
        RFC 1925, Satz 11a: Siehe Regel 6a