Parsen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

ich habe alles andere schon gecodet!
:? :roll:

Die anderen haben dir doch jetzt massenweise Hinweise gegeben, wie man sowas macht, schau dir nochmal den Thread genau an!
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
the one and only
Beiträge: 696
Registriert: 26.09.2004 20:17
Kontaktdaten:

Beitrag von the one and only »

Kyoko12 hat geschrieben:Wieso, so schwer kanns doch net sein!
Zitat aus den Robsite News:
einen guten Compiler zu bauen gehört nicht ohne Grund zu den schwierigsten Gebieten der Informatik
Wenn du "alles andere" schon gecodet hast würde mich interessieren als was du "alles andere" definierst.
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

Naja, den teil, der die Befehöe interpretiert, und ihn dan in NASM code umwandelt. Es ist ja eigentlich ein crosscompiler, kein Compiler!
the one and only
Beiträge: 696
Registriert: 26.09.2004 20:17
Kontaktdaten:

Beitrag von the one and only »

Ein crosscompiler ist es auch nicht unbedingt wenn du den Source in Assembler für Nasm usw. umwandelst. Wenns danach ging wäre PureBasic ja auch ein crosscompiler.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

ein crosscompiler währe es, wenn er unter windows executables für linux erstellen könnte, oder sogar für einen anderen prozessor, zb für ppc.
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

Nö, ein Crosscompilere ist es, wenn es eine Quellsprache in eine Zielsprache umsetzt, und nur den Source in der Zielsprache erstellt, richtige Compiler haben zusätzlich noch nen ASM eingebaut, der die Zielsprache in Maschienencode umwandelt!
Benutzeravatar
brotkasten-deluxe
Beiträge: 147
Registriert: 29.08.2004 01:43
Wohnort: Germany
Kontaktdaten:

Beitrag von brotkasten-deluxe »

Um zu deiner anfangsfrage zurück zu kommen:
Der Parser muss zwischen verschiedenen Zeilenarten unterscheiden können.
Nach dem du die Zeile in alle Einzelheiten unterteilt hat muss man zB nach dem ersten "Token"(erster gefundener Teil der Zeile)schauen.
Falls dieser ein Schlüsselwort wie "IF" oder "Repeat" ist , dann muss er damit was anfangen können.Hier ein kleiner Tip : An dieser Stelle kann man hervorragend mit einer Select-Case Schleife arbeiten ;)
Anderseits wenn er keine schlüsselwörter findet schaut er ob ein Befehl ausgeführt werden kann oder eine Zuweisung stattfindet.

Bei den verschiedenen Schleifen musst du auch wieder darauf achten , dass du einen Jumper einbaust , wie zb bei "Repeat", damit der compiler den code innerhalb der schleife so oft wiederholt wird wie er es soll. :allright:
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Kyoko12 hat geschrieben:Nö, ein Crosscompilere ist es, wenn es eine Quellsprache in eine Zielsprache umsetzt, und nur den Source in der Zielsprache erstellt, richtige Compiler haben zusätzlich noch nen ASM eingebaut, der die Zielsprache in Maschienencode umwandelt!
Du irrst:
wikipedia hat geschrieben: Ein Cross-Compiler bezeichnet einen Compiler, der auf einer Computerplattform läuft und Objektdateien oder ein ausführbares Programm für eine andere Computerplattform erzeugt.

Ein Cross-Compiler wird normalerweise benutzt, um ein Betriebssystem auf eine neue Hardwareplattform zu portieren oder um Programme für ein Embedded System zu erstellen.
Das was du meinst ist ein Transcompiler, also ein Zwischen(code)compiler.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

naja, nciht verwunderlich, das ist asuch in dem Tut gestanden, in dem das mit Parsen = zerschgneiden in tokens gestanden ist.
Naja, danke, ich werd das schon irgendwie hinkriegen, vieleicht mit Inline-ASM da ist das viel leichter.


Danke an alle,
Kyoko12.
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag von FGK »

Hi Kyoko12,

also täusch dich mal nicht das in ASM das Zeug leichter zu machen wäre.
Und nebenbei bemerkt haben die Jungs dir ja schon das meiste "verraten" wie es zu machen ist. Zunächst mal muß jede Zeile des Quellcodes in "Tokens" zerlegt werden. Dannach mußt die "Keywords" und ihre Parameter ermitteln und dann in "Deine" Zielsprache umsetzten.
Eigentlich genauso wie ein Converter - dazu müßte es doch ne Menge
Beispiele im Netz geben. Die Programmiersprache ist eher zweitrangig bei so nem Problem eher die Logik und die Vorgehensweise da wichtig => Sprich das "Konzept" wie man die Sache angehen muß.

Gruß
FGK
Antworten