Wie programmiert man eine Programmiersprache?

4 Antworten

Von Experten BeamerBen und JanMarcel01 bestätigt

Eine Programmiersprache programmiert man gar nicht.

Die wird einfach nur als solches definiert.

Das was man programmiert ist ein sogenannter Compiler oder Interpreter, wobei ein Compiler den Quellcode in Maschinensprache (oder in einigen Sprachen wie zB Java in eine Intermediate Language) und ein Interpreter den Code einfach nur ließt und die Befehle wie sie im Text stehen aus führt.

Ein Interpreter ist idR einfacher zu Programmieren als ein kompletter Compiler, allerdings würde das Thema wie die Verfahren funktionieren hier den Rahmen sprengen weswegen ich auf andere Quellen verweise.

Im wesentlichen läufts aber so ab, dass beide zuerst den Text parsen, dazu verwenden sie zunächst einen sogenannten Lexer bzw Tokenizer

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

Dieser erstellt aus dem Text Token, die anschließend weiterverarbeitet werden können. Diese Token sind dann quasi eine abstrahierte Form des Quelltextes welche leichter weiter zu verarbeiten sind.

Der Tokenizer ist hier quasi bestandteil des Parsers welcher den Quelltext quasi ließt:

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

Der Parser spuckt dann am Ende mehr oder weniger eine Liste von Anweisungen die dem entspricht was der Programmierer geschrieben hat.

Danach werden diese Anwendungen entweder Interpretiert oder in Maschinensprache weiterverarbeitet.

In welcher Programmiersprache du diese Dinge löst ist am Ende aber egal.

Am einfachsten, indem du (am besten in C/C++) einen Interpreter schreibst, der eine Textdatei (also Code) entgegennimmt, und anhand bestimmter Textschnipsel im Code bestimmte Aktionen ausführt.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

xXEXDXx08 
Fragesteller
 27.04.2022, 14:42

Ist es möglich, einen Interpreter zu schreiben ohne ihn in beispielsweise C zu schreiben?

0
MrAmazing2  27.04.2022, 14:43
@xXEXDXx08

Kannst ihn in Assembly schreiben, aber dann bist du verrückt lol

1
CarinaSchoppe  27.04.2022, 14:44
@MrAmazing2

naja er kanns gleich in binary schreiben passend für x86 nur dann weise ich ihn persönlich ein

3
CoSci  27.04.2022, 14:44
@MrAmazing2

In Compilerbau an der Uni haben wir einen mit Scala geschrieben.
Such mal nach dem Drachenbuch, das geht das Thema an, war aber glaube unabhängig von einer Programmiersprache und behandelt nur die Konzepte und Theorie, wurde uns immer wieder im Kurs empfohlen, ist aber auch schon "etwas" älter.

1

In 4th Dimension (eine Entwicklungsumgebung für Datenbankanwendungen, Client-Server) lief das so:

Zuerst (1984, v1) alle Funktionen etc in Pascal realisiert. Als Pascal nicht mehr ausreichte: alles neu in C, C++.

4D war schon sehr mächtig und ausgefeilt. Aus diesem Grund sind heute große Teile in 4D selbst programmiert und nehmen keine Umwege über andere höhere Programmiersprachen mehr. Heute ist v19 aktuell