Frage von Eisenkoenig, 70

Mit welcher Programmiersprache lohnt es sich, eine höhere Programmiersprache zu schreiben?

Hey liebe Community,
Wie schon oben genannt, möchte ich halt wissen, mit welcher Systemnahen programmiersprache es sich lohnen würde, eine eigene zu schrieben.
Da man aus der gennanten Fragestellung es nicht genau sagen kann, versuche ich es besser zu erklären.

Also Java, C# und C++ sind, falls ichs richtig versanden habe, von der Sprache C abgeleitet, genaueres habe ich dazu nicht gefunden.

Wenn ich jetzt eine eigene Sprache koodieren möchte,
die sollte möglichst Plattform unabhängig sein, einen Compiler und Interpreter, wie bei Java besitzen und nicht sehr leicht zu erlernen sein, leichter als Python, auf kosten der Performance.

Mache ich das dann mit Assembler oder könnte ich auch aus z.B. Javacode eine ableiten ?

P.s. Korrigiert mich gerne ^^

Antwort
von ceevee, 22

Als erstes solltest du mal programmieren lernen. Also so richtig, aus deiner Frage geht so'n bisschen hervor, dass du noch nicht wirklich Ahnung davon hast. Java und C# sind nicht von C abgeleitet und nutzen eine virtuelle Maschine (VM). Mit der virtuellen Maschine hätten sich Performance und Systemnähe bei den beiden Sprachen schon erledigt. Wenn du eine eigene Sprache so richtig schreiben willst, dann hast du keinen Compiler oder Interpreter, dann musst du dir diese selber schreiben, wenn du sie haben willst. Parser und Compilerbau sind recht komplexe Themen, denen an der Uni im Informatikstudium viel Zeit gewidmet wird. Ein Anfang wäre

https://de.wikipedia.org/wiki/Compilerbau

Für den Anfang könntest du etwa mit C++ und der #include-Direktive gegebene durch eigene Kommandos ersetzen und hättest so eine eigene Sprache, die einen C++-Compiler nutzt.

Antwort
von grtgrt, 20

Man "schreibt" keine höhere Programmiersprache.

Man spezifiziert sie zunächst (d.h. man definiert sie nach Syntax und Semantik) und schreibt dann einen Compiler oder Interpreter für diese neue Sprache.

Für letzteres verwendet man am besten C oder C++ .

Kommentar von Eisenkoenig ,

Dankeschön

Antwort
von Mikkey, 34

Man kann in jeder Programmiersprache (die Texte verarbeiten kann) einen Compiler schreiben, das ist kein Hexenwerk.

Die Effizienz der erstellten Programme ist auch nicht von der Sprache abhängig, die man für den Compiler verwendet. Das Programm ist letztenendes eine Datei mit einem Header, verschiedenen Tabellen und dem erzeugten ausführbaren Code.

Antwort
von PerfectMuffin, 29

1. Eine Programmiersprache zu erschaffen ist auch mit höheren Sprachen kein Problem und mit Assembler wäre es wirklich eine dumme Idee...auch wenn die ersten Entwicklungsumgebungen vermutlich mit Assemblersprache erstellt wurden.

2. Wenn du sie vom Bytecode-Format aus ausführen würdest, musst du dir auch ein Bytecode-Format ausdenken, das mit deinem Sprachkonzept kompatibel ist.

Antwort
von phigeek, 7

Eine höhere Sprache wird (wie bereits in anderen Antworten erwähnt) erst mal spezifiziert.

Danach gibt es aber bereits gute Programme, welche die Symbole scannen und die Reihenfolge prüfen können, wie

Scanner, Lexer und CC (compiler-compiler)

google mal nach yacc oder bison.

Die Umsetzung würde ich selbst in Assembler/C/C++ vornehmen. Die Struktur und Aufrufe von Systemroutinen wohl in C++, die Maschinennahen Befehle (wie eigene ZIP-Formate wenn Du sowas überhaupt hast, etc.) in Assembler.

Ich selbst hatte 1990 die Sprache AGI3 in Modula2 und Assembler gebaut, dabei war Assembler nur gerade für eine einzige Methode nötig, das rasche Auspacken von komprimierten Bildern.

Expertenantwort
von Roderic, Community-Experte für Hardware, 22

Am besten mit C oder C++.

Warum?

Weil du für das, was du vorhast, einen Parser brauchst und dafür gibt es in diesen beiden Sprachen ausgereifte und gut dokumentierte Bibliotheken.

Keine passende Antwort gefunden?

Fragen Sie die Community