Purga - Scriptengine www.virtual-maxim.de/purga Ein Einblick.

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

OStR Dipl. Ing. Carsten Kraft
Klassen - Verkettete Liste -
Forschungszentrum caesar
10. Grundlagen imperativer Programmiersprachen
der Universität Oldenburg
FH-Hof Einbindung von JavaScript Anweisungen
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Objektorientierung
Verzweigung oder bedingte Anweisung Weiter mit PP.
Die Skriptsprache Lua Softwaretechnologie II.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
Das erste Programm (Folie 16)
Einführung in C++ und das objektorientierte Programmieren (OOP)
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Anweisungen und Datentypen
Schleifen mit der Turtle
Informatik Grundkurse mit Java
Struktogramme IF-ELSE FOR – Schleife
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Grundkonzepte Java - Klassendefinition
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Informatik 1 Übung 2.
Wir haben gesehen Das Gerüst ist bei JavaKara fix vorgegeben
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Einführung in die Programmiersprache C 4
Informatik 1 Letzte Übung.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Referenztypen (II) und Const- Referenzen Temporäre Objekte, Const- Referenzen, was genau ist konstant?
Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Grundkonzepte des Programmierens (mit ActionScript)
Arrays / Felder Themen: Arrays / Felder / Vektoren Was soll das eigentlich? Erstellen von Arrays Arrays auslesen. Wie sie verwaltet werden.
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Algorithmen und Datenstrukturen SS 2005
„einfaches Java Programm“
EPROG Tutorium #3 Philipp Effenberger
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Datentypen Überblick Datentypen Einfache / fundamentale Datentypen
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
SFZ FN Sj. 13/14 Python Grundlagen InfK12 Sj 13/14 GZG FN W.Seyboldt.
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
1 // Heap als ADT // JW: V1.0 // Vorlage gemaess EED-Quelltext // #include #include // für double pow (double d, int i) #include // fuer INT_MIN.
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Hello World! Javakurs 2013 Arne Kappen
Aufgaben zu Rückgabewerten
Felder in Java.
Grundkurs Informatik mit Java
Implementieren von Klassen
Kara: act()-Methode.
 Präsentation transkript:

Purga - Scriptengine Ein Einblick

Inhalt Überblick Grundlagen Variablen Schleifen Bedingte Anweisungen Purga to C++ C++ to Purga Ausblick

Überblick Website: Wird seit 2007 entwickelt Kostenlos und frei verwendbar Für Windows und Linux verfügbar Beinhaltet Dokumentation und Beispiele Syntax ist sehr C++ - ähnlich Einfache Einbindung in C++ - Programme

Grundlagen Schlüsselwörter int, float, string, void, bool, table, vector, false, true, if, while, else, elseif, for, and, or, const, function, return, ref Tokens ><{}+-*/

Variablen 1 Statische Typzuweisung Auto-Initialisierung Datentypen: Konstanten werden mit const eingeleitet DatentypSpeicherWertebereich int4Byte–2,147,483,648 bis 2,147,483,647 float8Byte 1.7E +/- 308 (15 Nachkommastellen) string2Byte pro Zeichen bool1Bytetrue/false oder 1/0

Variablen 2 Deklaration Initialisierung Deklaration & Initialisierung Datentyp Name; Name = Wert; Datentyp Name = Wert;

Schleifen 1 - for for( int i = 0; i < 5; i++) { // Anweisung } for( Initialisierung; Bedingung; Anweisung) { // Anweisung } Beispiel: Syntax:

Schleifen 2 - while int i = -5; while( i < 0) { i++; } while(Bedingung) { // Anweisung } Beispiel: Syntax:

Bedingte Anweisungen 1 – if / else int i = -5; if( i < 0) { i++; } else { i = -10; } if(Bedingung) { // Anweisung 1 } else { // Anweisung 2 } Beispiel:Syntax:

Bedingte Anweisungen 2 – elseif int i = -5; if( i < 0) { i++; } elseif( i > 0 and i < 12) { i = -10; } else { i = 20; } if(Bedingung) { // Anweisung 1 } elseif { // Anweisung 2 } Beispiel:Syntax:

Purga to C++ / Variablen In Purga deklarierte Variablen in C++ verwenden Funktioniert nur mit globalen Variablen Es stehen folgende Methoden bereit: // Eine globale Purga-Variable in C++ exportieren bool GetVariable(const wchar_t* var_name, int& variable); bool GetVariable(const wchar_t* var_name, double& variable); bool GetVariable(const wchar_t* var_name, std::wstring& variable); bool GetVariable(const wchar_t* var_name, bool& variable);

Purga to C++ / Variablen - Beispiel int purga_var = 0; Purga_Instanz.GetVariable(ivariable, purga_var); std::cout << purga_var << std::endl; int ivariable = -4; C++ Code: Purga-Script:

C++ to Purga / Variablen Variablen die in C++ deklariert wurden in Purga verwenden Es stehen folgende Methoden bereit: bool RegisterVariable(const wchar_t* var_name, int &var); bool RegisterVariable(const wchar_t* var_name, double &var); bool RegisterVariable(const wchar_t* var_name, std::wstring &var); bool RegisterVariable(const wchar_t* var_name, bool &var);

C++ to Purga / Variablen - Beispiel float cpp_var = 0; Purga_Instanz.RegisterVariable(cpp_var, cpp_var ); std::cout << purga_var << std::endl; cpp_var = 34.67; C++ Code: Purga-Script: // Nach der Ausführung des Scripts // wird auf dem Bildschirm erscheinen std::cout << cpp_var << std::endl; C++ Code:

C++ to Purga / Funktionen C++ Funktionen in Purga aufrufen _stdcall oder _cdecl Aufrufkonvention Funktionen wird mit folgender Methode exportiert: bool RegisterFunction(const wchar_t* FullNameOfFunction, void* function, eCallType calltype = purga::CALL_STDCALL);

C++ to Purga / Funktionen - Beispiel Purga_Instanz.RegisterFunction(L"int print(string)", &wprintf, purga::CALL_CDECL); print("hallo \n"); C++ Code: Purga-Script:

Ausblick Zukünftige Features: Purga-Funktionen, Tabellen, Referenzen Steigern der Geschwindigkeit Erweitern der Dokumentation Bessere Fehlererkennung Danke für Ihr Interesse!