Compiler schreiben mit BB?

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Smily

BeitragMo, Jan 05, 2009 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ChristianK hat Folgendes geschrieben:
Für's übersetzten brauchst du in dem Fall dann einen Compiler. So einen zu schreiben ist aber nicht ganz einfach ...


genau eben nicht!

Man nimmt sich einfach schon einen der zig compiler, die frei irgendwo rumschwirren.
wie zum beispiel den gcc!

Dann hat man nur noch die Arbeit, seinen Code in die sprache zu übersetzen, die der compiler verwendet.
in diesem Fall eben C.

Fassen wir zusammen:
- Kein Interpreter für sonstirgendwas muss selbst geschrieben werdem
- Kein Compiler für sonstirgendwas muss selbst geschrieben werdem
- Man muss sich lediglich einen "übersetzer" schreiben, der das Spiel (sei es jetzt in einer selbstausgedachten sprache geschrieben oder per klickibunti zusammengesetzt) in die Sprache des Compilers übersetzt.

aaaalso um es kurz zu machen:

Eigene Sprache -> Übersetzer -> Standardisierte Sprache -> Compiler -> Ausführbare Datei

Den Übersetzer muss man dann selbst schreiben. und _nur_ den übersetzer. Das hat nichts mit einem Compiler oder einen Interpreter zu tun.

Jetzt zwei konkrete beispiele, damit es der letzte versteht:

Eigene Sprache -> Übersetzer -> Assemblercode -> FASM -> Ausführbare Datei
Eigene Sprache -> Übersetzer -> C oder C++-code -> GCC -> Ausführbare Datei

Edit:
Zitat:
Hm...
Gibt es vielleicht irgendwelche fertigen Compiler, die den Job machen können?

http://de.wikipedia.org/wiki/FASM
http://de.wikipedia.org/wiki/G...Collection
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
  • Zuletzt bearbeitet von Smily am Mo, Jan 05, 2009 15:25, insgesamt einmal bearbeitet

Megamag

BeitragMo, Jan 05, 2009 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, wie schreibt man einen solchen Übersetzer und
wie kann man dann das C in eine Exe umwandeln und wie
binde ich diesen Compiler in mein Programm ein? Gibt
es da irgendwelche Tutorials oder so?
 

ChristianK

BeitragMo, Jan 05, 2009 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Smily, du weißt aber schon, dass ein Übersetzer ein Compiler ist? Rolling Eyes
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Smily

BeitragMo, Jan 05, 2009 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein übersetzer ist höchstens ein Präprozessor

Blitz4D hat Folgendes geschrieben:
Ok, wie schreibt man einen solchen Übersetzer und
wie kann man dann das C in eine Exe umwandeln und wie
binde ich diesen Compiler in mein Programm ein? Gibt
es da irgendwelche Tutorials oder so?


Das kann man alles, nachdem man sich mit den Grundlagen der Programmierung ausseinandergesetzt, und diese verstanden hat
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
  • Zuletzt bearbeitet von Smily am Mo, Jan 05, 2009 15:31, insgesamt einmal bearbeitet
 

ChristianK

BeitragMo, Jan 05, 2009 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Compiler ist definitionsgemäß ein Übersetzer, der eine Quellsprache in eine Zielsprache übersetzt. Ob das Maschinensprache oder eine Hochsprache ist, spielt keine Rolle. Siehe dazu auch http://de.wikipedia.org/wiki/Compiler
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Tankbuster

BeitragMo, Jan 05, 2009 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ist soetwas überhaupt möglich ?
Mit einer Programmiersprache eine Programiersprache zu schreiben, dessen Maschiencode schneller ausgeführt wird als der der benutzten Programmiersprache Question


Natürlich. Blitz bietet doch genug Sachen, um eigene Exe-Files selbst zu schreiben. Schon mit WriteByte allein kannst du kleine Programme schreiben:

Code: [AUSKLAPPEN]
CODE=B3D
File=WriteFile("Test.com")
WriteByte File,235
WriteByte File,12
WriteByte File,104
WriteByte File,101
WriteByte File,108
WriteByte File,108
WriteByte File,111
WriteByte File,32
WriteByte File,119
WriteByte File,111
WriteByte File,114
WriteByte File,108
WriteByte File,100
WriteByte File,36
WriteByte File,186
WriteByte File,2
WriteByte File,1
WriteByte File,180
WriteByte File,9
WriteByte File,205
WriteByte File,33
WriteByte File,184
WriteByte File,1
WriteByte File,76
WriteByte File,205
WriteByte File,33
CloseFile(file)

Dieses Programm gibt in der DOS-Box kurz "hello world" aus, danach verschwindet sie wieder Wink
(beachte: Schon die einfachste Windows-Executable wird diese Com-Datei an größe ziemlich heftig übertreffen.)

Theoretisch kannst du mit Blitz auch komplette PE-files (.exe) nur mit "WriteByte" schreiben. Danach ist es egal, ob diese Bytes durch einem auf Blitz, oder auf C++ basiertem Programm in die Datei geschrieben wurden.
Zur Not könnte man das auch per Hand schreiben, aber ich persönlich hätte keine Lust, mehrere Tausend Bytes nur über die Tastatur zu schreiben Rolling Eyes (bei meinem Beispiel oben ist es ja etwas anderes, weil kleiner)

Also...
Mit Blitz ist es möglich einen Kompiler zu basteln, der Ausführbare Dateien erstellt, aber vermutlich wird das sehr viel Arbeit, vorallem, weil man dafür auchnoch ASM lernen müsse Confused


Ein paar wichtige Sachen zum Aufbau von PEs hab ich auchmal gleich rausgesucht Wink

http://msdn.microsoft.com/en-u...09762.aspx
http://www.deinmeister.de/w32asm5.htm
Twitter
Download Jewel Snake!
Windows|Android

Megamag

BeitragMo, Jan 05, 2009 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit WriteByte ist ja nicht schlecht.
Ich weiß nur nicht wieviel Byte ich schreiben soll
für eine bestimmte Funktion oder so.

mahe

BeitragMo, Jan 05, 2009 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn man sich Deine Antworten so ansieht, wird das wohl nix werden.

Informier Dich erstmal besser und lern noch ein bisschen was bist Du so ein Projekt beginnst.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

flona

BeitragMo, Jan 05, 2009 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich kann man einen solchen Compiler schreiben. Je nachdem was dein Compiler alles können soll wirds halt schwieriger. Schreibe momentan selber einen.

Hier gibt's auch ein Tutorial dazu: Let's build a compiler
Ist zwar schon 20 Jahre alt, aber irgendwie immer noch aktuell. Wink
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group