Scriptsprache kompilieren

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Merier

Betreff: Scriptsprache kompilieren

BeitragFr, Apr 24, 2009 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!

Ich hab mal ne Frage!

Also wen ich jetzt zum Beispiel eine Scriptsprache schreibe(mit BlitzBasic), wie könnte ich dann aus dem Scriptcode eine exe machen, also sie kompilieren?

Hoffe auf Antworten^^

mfg Merier

Nicdel

BeitragFr, Apr 24, 2009 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
In C++ umwandeln und nen Compiler drüberlaufen lassen?
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Merier

BeitragFr, Apr 24, 2009 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich meine ein Benutzer programmiert mit meiner Skriptsprache und will dann eine Exe seines Codes machen aber wie macht man das?

Wie soll das denn mit C++ gehn?

Tankbuster

BeitragFr, Apr 24, 2009 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.microsoft.com/whdc/...ECOFF.mspx

Bitteschön, alles über den Aufbau von Windows-PEs.
Ich hatte mal eine andere tolle Seite, aber die find ich nichtmehr.

Lass dir gesagt sein, dass das ein verdammt schweres Thema ist Wink
Twitter
Download Jewel Snake!
Windows|Android
 

Merier

BeitragFr, Apr 24, 2009 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke für die Antwort ich guck mir den Link mal an.
Wäre auch zu schön gewesen wens leicht gehen würde^^.

mfg Merier

ozzi789

BeitragFr, Apr 24, 2009 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder bau baust eine Exe welche dann einen unkompilierten Source einliest und verarbeitet

befehl$=readline(source)
if instr=(befehl$,"Print",1) <> 0 print mid(befehl$,7,-1)

so was in die Art
mir fällt das richtige Wort nicht ein :/
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Merier

BeitragFr, Apr 24, 2009 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja genau so etwas habe ich bis jetzt ich habe ein Programm was den Quellcode aus der Datei einliest und den jeweiligen Befehl ausgibt.

ozzi789

BeitragFr, Apr 24, 2009 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Tja das ist ja schonmal was Wink
aber eigene Exen erstellen wird wohl doch eher schwerer Razz
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

The Shark

BeitragFr, Apr 24, 2009 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi du meinst einen Interpreter
 

Merier

BeitragFr, Apr 24, 2009 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja nur dann müsste jeder der das Programm benutzen will auch den Interpreter haben.

Skabus

BeitragFr, Apr 24, 2009 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde, sofern du die nötigen Kenntnisse besitzt, die Skriptsprache entsprechend in C++-Code umwandeln lassen.Das komtm allerdings auf die Komplexität an.
Ich denke mal einfache Print "Dies und das" Befehle in gültigen C++-Code umzuwandeln sollte
eigentlich wenig Probleme machen, bei Kontrollstrukturen udn Schleifen bin ich mir da nicht so sicher...

Abhängig davon was du damit machen willst kannst du unterschiedliche Wege gehen aus deiner Skriptdatei ne C++-Datei zu machen.

Der einfachste Weg den ich mal genommen habe, war einfach nen vorgefertigtes grundgerüst zu nehmen,
die einzelnen Teile der Skriptsprache dann in C++-gültige Funktionen zu schreiben und die
dann mit nem einfachen Stackmanager nacheinander ausführen lassen.

Das ging eigentlich ganz gut. Die exe-Datei habe ich dann einfach über den system-Befehl von
C++ und dem MinGW-Compiler erstellen lassen.

Das funzt sogar ganz gut.Man kann damit sogar(was ich gemacht habe) pseudomäßigen "sich selbst schreibenden Code" erzeugen, aber das is ja net sinn der Sache Wink


Problematisch wirds dann nur wenn du son Kram wie RPG-Maker machen willst, ich denke mal da macht die Nutzung von nem zusätzlich zu installierenden Compiler weniger Sinn...


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu
  • Zuletzt bearbeitet von Skabus am Fr, Apr 24, 2009 21:03, insgesamt einmal bearbeitet
 

Merier

BeitragFr, Apr 24, 2009 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Skabus, das hat mir schonmal geholfen werde mich mal ransetzten.



Very Happy Very Happy

Nicdel

BeitragFr, Apr 24, 2009 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum Thema Ausgabe mit C++ siehe auch: http://www.cplusplus.com/refer...ry/cstdio/
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

matze-t

BeitragFr, Apr 24, 2009 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du wirklich einen eigenen Compiler schreiben willst, könnt dich das interessieren: http://vhb.fh-regensburg.de/co/. Auf der Seite dreht sich alles um Compilerbau. Sogar ein Beispiel-Compiler kannst du dir da anschauen. Aber wie schon gesagt wurde: Das Thema ist echt schwierig. Ich hab schon Bücher über Compilerbau gesehen, die man fast schon im Aufzug als Gegengewicht verwenden könnte ...
Aber wenn dus angehen willst, dann findest du da so ziemlich alles was du brauchst.
 

Merier

BeitragFr, Apr 24, 2009 23:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Also danke noch mal ich finde das echt cool von euch das ihr mir helft, ich werde es mir morgen mal angucken.
Seid echt cool Very Happy Very Happy Very Happy Very Happy

mfg Merier

Silver_Knee

BeitragSa, Apr 25, 2009 1:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Also einen Interpreter den du kennst ist zB Java. Nur ist der dabei etwas geschickter:

Bsp:
Print "bla"
vvvvvvvvvv
(byte)1(byte)3bla

und lässt den Interpreter (die Java Runtime) mit Zahlen Arbeiten, was ein PC scheller kann und so werden die Programme auch angenehm schnell.
 

Kruemelator

BeitragSa, Apr 25, 2009 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Naja nur dann müsste jeder der das Programm benutzen will auch den Interpreter haben.


Ich hätte es so gemacht:
Einen Interpreter erstellen in dem ein String existitert mit dem Code der eigenden Sprache:
Code: [AUSKLAPPEN]
...
quelltext$ = "code"
...

Dieser wird dann abgearbeitet.
Wenn ich jetzt einen anderen Code ausführen möchte, dann ersetze ich einfach den Code. Dazu müsste man noch nicht mal einen neue exe mit BB compilieren, man könnte eine Kopie der ersten exe erstellen, dies mit einem Texteditor öffnen und "code" ändern.

Thorsten

BeitragSo, Apr 26, 2009 9:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Kruemelator hat Folgendes geschrieben:
man könnte eine Kopie der ersten exe erstellen, dies mit einem Texteditor öffnen und "code" ändern.

Hast du das auch schon mal ausprobiert? lol
 

Kruemelator

BeitragSo, Apr 26, 2009 9:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry Embarassed
Mit dem Windows Texteditor: Notepad geht das nicht.
Hatte dafür nen Hexeditor genommen.
Link

Thunder

BeitragSo, Apr 26, 2009 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist zwar kein Compiler, aber meiner Meinung nach der einfachere Weg:

Du baust dir eine EXE die den Interpreter beinhaltet, nur liest der Interpreter jetzt nicht eine andere Datei ein, sondern liest er sich selber ein. Damit meine ich, dass der Code der ausgeführt werden soll hinten an die EXE gehängt wird und dann vom Interpreter eingelesen wird:

Code: [AUSKLAPPEN]

Local code$
Local datei=ReadFile("selbst.exe")
Repeat
  code=Readline(datei)
  If code="<codestart>" Then
    Interpreter(datei) ;Funktion die in der Datei weiterliest und interpretiert
    Exit
  EndIf
Until Eof(datei)=1


Der Vorteil ist wie gesagt, dass es einfacher ist als ein Compiler, aber der Nachteil ist, das das ganze nur mit Interpretergeschwindigkeit ausgeführt wird.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group