• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eine eigene Programmiersprache erstellen?

Status
Für weitere Antworten geschlossen.

JackEX

Neues Mitglied
Hi Leute,

Der Titel "Eine eigene Programmiersprache erstellen?" sagt ja schon so gut wie alles.

Wahrscheinlich habt ihr so eine Frage schon öfters gehört, aber ich würde gerne wissen, wo man anfangen soll.

Dass ich dann irgendeinen Compiler programmieren soll ist mir schon klar.

Aber wie funktioniert dieser?

macht er z.B. aus einem "if" einfach ein 01001011?
speichert er dann die maschinensprache in einem textdokument und führt es dann aus?
mit welcher sprache sollte man den compiler programmieren?
wenn ich die maschinensprache sprechen könnte, wie machen ich dann aus einem text von einsen und nullen eine ausführbare datei?

mir würden noch einige fragen einfallen, aber sonst wäre es zu viel für mich ^^

ich freue mich auf antworten
thx im voraus
 
Werbung:
Überlege dir zu aller erst die Syntax und welche features deine sprache hat, sonst brauchst du gar nicht anfangen. Und überlege es dir genau sonst hast du im nachhinein riesige probleme.

Jetzt kannst du dir überlegen welche art von ausführung am soinnvollsten ist:
Willst du eine Sprache die sich ein als natves programm ausführen lässt (das schwerste)? Dan schreibe einen Compiler/Übersetzer der die sprache je nach plattform in assambler/maschienencode übersetzt.
Willst du eine scriptsprache? Dan schreibe einen Interpreter der den quelltext direkt interpretiert.
Es gibt auch noch den hybriden aus beiden systemen. So wie bei java mit virtueller maschien. Aus dem quelltext wird pseude maschinencode erstellt (bytecode) und der wird dann interpretiert.

Alles drei ust aufwendig und schwer und bezweifele das du das hinbekommst.
 
danke für die antwort, so eine antwort hab ich mir fast schon vorgestellt... geht es auch ein bisschen genauer?

Überlege dir zu aller erst die Syntax und welche features deine sprache hat, sonst brauchst du gar nicht anfangen. Und überlege es dir genau sonst hast du im nachhinein riesige probleme.
okay, angenommen ich habe mir schon eine genaue syntax überlegt und angenommen sie ist ähnlich einer BASIC-syntax

Jetzt kannst du dir überlegen welche art von ausführung am soinnvollsten ist
hm... ja ich stelle mir da eher eine native sprache vor
angenommen die sprache macht nur programme in der DOS-Box (das müsst ja gar nicht mal soo schwer sein)

Aus dem quelltext wird pseude maschinencode erstellt (bytecode) und der wird dann interpretiert.
okay, also was der compiler dann macht, ist dann das "if" in 10100011 zu übersetzen...?

und wie ist das dann mit dem interpretieren?
 
Werbung:
Hast du dich schonmal mit Assembler beschäftigt? Wenn nicht kannst du die übersetzung in nativen/bytecode vergessen weil du dafür wissen musst wie eine cpu funktioniert und welche asm befehle es gibt (soetwas abstraktes wie if gibt es auf dieser ebene nicht mehr dort kannst du nur noch mit sprüngen und registern arbeiten und das rechnen beschränkt sich nur noch auf die vier grundrechenarten + bitoperationen). Aber mal abgesehen davon bekommst du hier noch ganz andere probleme weil du auch noch möglichkeiten einbauen musst um auf system funktionen zuzugreifen.

Beim interpretieren ließt du den code direkt ein ohne ihn zu übersetzten und reagierst dann direkt auf den text, das ist auch wahrscheinlich die einfachere (wenn auch langsamere lösung). Allerdings ist sie ebenfalls nicht einfach
 
Oder du erstellst einen Präprozessor ;-) Halt ich persönlich für den einfachsten Weg... er schreibt die Befehle dann z.B. in Perl/Python und lässt dann den entsprechenden Compiler drüberlaufen.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben