Forum: PC-Programmierung exe , dll = PE , etc


von Patrick O. (sir-patrick)


Lesenswert?

Hallo,

Ich frage mich, wie schwer es ist, sich seinen eigenen Compiler und 
Linker für Windows zu schreiben - von der Seite der Theorie aus 
zumindestens. Was ich weiß, ist, dass alle exe und dll-Daten mit einem 
Portable Executalble Teil anfangen.

Jetzt weiß ich aber nicht, wie das etc im Betreff aussieht. Das Thema 
ist ja sehr umfangreich. Kennt da jemand eine gute Zusammenfassung oder 
Dokumentation?

Freundlich Grüßend

      Patrick

von madler (Gast)


Lesenswert?

Compiler und Linker selbst zu schreiben wird nicht nur sehr umfangreich 
sein, sondern auch einen sehr begrenzten Nutzen haben, es sei denn Du 
willst Deine eigene Programmiersprache erfinden oder einfach nur "wissen 
wies geht".

Um einen eigenen Compiler für eine Programmiersprache zu bauen, haben 
sich lex  flex und yacc  bison bewährt, quasi ein Toolkit zum 
Compilerbau
http://de.wikipedia.org/wiki/Lex_(Informatik)
http://de.wikipedia.org/wiki/Yacc

Bücher über "Compilerbau" gibts in jeder Uni-Bibliothek Deiner Wahl.

von madler (Gast)


Lesenswert?

sollte heissen "lex bzw flex und yacc bzw bison". Man sollte doch die 
Vorschau benutzen...

von Jan (Gast)


Lesenswert?

Compilerbau, besuche 'ne Vorlesung an einer Hochschule deines 
Vertrauens.

von Bartli (Gast)


Lesenswert?

Die Frage ist doch, was du genau machen willst. Willst du einen Compiler 
für eine (selbsterfundende) Sprache schreiben, oder wirklich einen 
Linker? Ich meine, Compilerbasteln kann ja Spass machen, aber sich mit 
dem PE-Format rumärgern?

Wenn du jetzt zum Bleistift nur einen Compiler bauen willst, dann 
vergiss den Linker ganz einfach bzw. nimm einen existierenden Assembler 
und einen existierenden Linker und mach deinen Compiler so, dass er 
Assemblercode generiert. Den jagst du dann durch den Assembler, die 
enstehenden Objetfiles linkst du, fertig.

Ansonsten: http://win32assembly.online.fr/tutorials.html (Such nach "PE 
Tutorial"). Kann allerdings sein, dass das Zeugs ein bisschen veraltet 
ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.