Eine Art Compiler?

Ich habe mir mal das Installationsprogram von Nullsoft (WinAMP) angeschaut. Da schreibt man ein Inst.-Script und das Programm macht aus diesem Script dann eine .exe Datei.
Wie funktioniert das so im Groben?
Ist in das Inst.erstellungsprogramm ein Compiler eingebaut oder haben die einige verschiedene „Happen“ des Programms und setzten die dann „nur“ zusammmen?
Was meint ihr?

Danke
Mario

Hallo Mario!

Kann es sein, dass du soetwas wie SelfExtracting-Files meinst, wie man sie auch mit Winzip erstellen kann? Ich stelle mir das bei Winamp so vor:
* Du erzeugst dein Inst-File
* Eine Art von Interpreter liest dieses File, interpretiert dieses und erzeugt eine selbstextrahierendes Setupfile
* Dieses Setupfile enthält das Programm zum Installieren und den komprimierten Teil (Winamp selber), welcher vermutlich (wei bei einem Virusbefallenen Programm) hinten an der exe-Datei dranhängt.
* Bei der Installation wird das Setup-File ausgeführt, dieses öffnet sich selber, holt aus sich selber den komprimierten Teil, enzippt diesen und speichert diesen am Ziel ab.

Vielleicht habe ich recht,
KoRn!

Man kann mit diesem Script aber auch eigene Funktionen machen und Variablen definieren, aber halt nur eine bestimmte Anzahl.

Danke
Mario

Hallo Mario

Ich habe mir mal das Installationsprogram von Nullsoft
(WinAMP) angeschaut. Da schreibt man ein Inst.-Script und das
Programm macht aus diesem Script dann eine .exe Datei.
Wie funktioniert das so im Groben?
Ist in das Inst.erstellungsprogramm ein Compiler eingebaut
oder haben die einige verschiedene „Happen“ des Programms und
setzten die dann „nur“ zusammmen?
Was meint ihr?

Einen Compiler zu schreiben ist gar kein so grosser Aufwand. Ein Compiler besteht aus 3 Stufen

  1. Frontend
  2. Otimierer
  3. Backend

Das Frontend „versteht“ die Programmier-Sprache, macht die lexikalische und syntaktische Analyse und erzeugt eine Art Pseude-Code.

Der Optimierer macht eben dies und ist meistens der aufwendigste Teil des ganzen. Er kann aber auch gänzlich fehlen.

Das Backend erzeugt schliesslich den Code. Hier werden eigentlich auch nur „Happen“, entsprechend den Pseude-Code-Befehlen "zusammengestzt. Meist werden grössere „Happen“ in eine Systembibliothek verpackt (z.B. 32-Bit Arithmetik für eine 8-Bit CPU) welche dann zum erzeugten Code dazugelinkt werden muss.

Bei einem entsprechend „sauberen“ Design braucht man für verschiedene Programmier-Sprachen nur das Frontend auszutauschen entsprechend muss man, um Code für verschiedene Prozessoren zu erzeugen, nur das Backend austauschen.

MfG Peter(TOO)

Hallo Mario!

Mit JavaScript kann man das ja auch und es wird kein ausführbarer Code erzeugt, es wird nur der Source interpretiert. Dieses Inst-Script ist halt etwas intelligenter.