Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Entwickeln einer eigenen Programmiersprache... (https://www.delphipraxis.net/104474-entwickeln-einer-eigenen-programmiersprache.html)

Störtebeker 4. Dez 2007 21:29


Entwickeln einer eigenen Programmiersprache...
 
Hallo,

Mit unserem guten Delphi ist es doch bestimmt auch möglich eigene
Programmiersprachen zu schreiben, oder?

Was muss man da so alles beachten?
z.B.:

- bzgl. eigener Compiler
- bzgl. eigener Syntax (z.B.: nicht
Delphi-Quellcode:
procedure . . .
sondern z.B.:
Delphi-Quellcode:
do procedure . . .
also quasi selbsterfundene Befehle, die dann letztendlich auch funktionieren.

- bzgl. Syntaxhervorheben kann ich ja bestimmt SynEdit verwenden.

und natürlich die größte Frage, wie fange ich am besten an?

Thx.

mkinzler 4. Dez 2007 21:31

Re: Entwickeln einer eigenen Programmiersprache...
 
Da solltest dich zuerst einmal mit dem Thema Compilerbau auseinandersetzten.

3_of_8 4. Dez 2007 21:37

Re: Entwickeln einer eigenen Programmiersprache...
 
Kleiner Tipp: Es ist schon sehr kompliziert, einen Parser für eine Sprache zu schreiben. Auch sehr schwierig ist es, dann einen Interpreter zu schreiben. (Ich spreche aus Erfahrung) Aber einen Compiler - sowas kriegt man ohne viel Erfahrung und jahrelange Arbeit nicht vernünftig hin.

Du solltest daher überdenken, ob das Schreiben eines Compilers nicht eventuell ein etwas zu hoch gegriffenes Projekt für dich ist.

Phoenix 4. Dez 2007 21:44

Re: Entwickeln einer eigenen Programmiersprache...
 
Literaturhinweis: Das 'Drachenbuch'.
Mal nach googeln - das ist DAS Standardwerk (im deutschen in 2 Bänden) zum Compilerbau.

markusj 4. Dez 2007 21:45

Re: Entwickeln einer eigenen Programmiersprache...
 
Wenn seine Sprache nicht allzu sehr von der Delphi Language abweicht, könnte er ja einen Parser/Übersetzer basteln, und den übersetzten Delphi-Code dann vom Compiler backen lassen ...

mfG
Markus

deep_thought 4. Dez 2007 21:49

Re: Entwickeln einer eigenen Programmiersprache...
 
3_of_8 kann ich nur zustimmen ...
du solltest:
1. dir über die Syntax und handhabung deiner Sprache im klaren sein (objektorientiert?, versch. deklarationstypen -> wie klar voneinander getrennt?, allgem. Programmstruktur, ...)
2. versuchen, einen interpreter zu schreiben (ohne editor)
3. versuchen, einen crosscompiler zu schreiben (am besten von deiner sprache nach assembler)
-> dazu musst du dich dann mit Compilerbau beschäftigen (-> Code übersetzen, linken, ...)
4. versuchen, diesen crosscompiler und nen assembler-compiler zu koppeln um nen richtigen compiler zu bekommen oder dir selbst die Mühe machen nen compiler zu schreiben, der dir ne binärdatei raushaut
5. dich um den Spaß kümmern, über den du dir wahrscheinlich schon die meisten gedanken gemacht hast: den Editor, der deine verschiedenen Compiler aufrufen kann ...

... ich will dir ja nicht den Mut nehmen, aber ich persönlich habe bis 2. durchgehalten ;)

mfg deep_thought

3_of_8 4. Dez 2007 22:33

Re: Entwickeln einer eigenen Programmiersprache...
 
Der Editor ist wirlich das unwichtigste. Es ist ein weit verbreiteter Fehler - vor allem unter Anfängern - sich zuerst über die GUI und dann über die Funktionalität Gedanken zu machen.

phXql 4. Dez 2007 22:35

Re: Entwickeln einer eigenen Programmiersprache...
 
Form follows function.

MStoll 4. Dez 2007 22:54

Re: Entwickeln einer eigenen Programmiersprache...
 
Hi,

hab auch mal nen Pascal-Interpreter geschrieben, ohne Klassen, Records, Typdeklarationen und dergleichen. Es geht eigentlich schon einigermaßen, wenn man sich Gedanken darüber macht. Allerdings kommt dann nicht viel mehr als ein Interpreter für einfache Skripten dabei raus. Aber ganz wichtig: Arbeite gut strukturiert, damit du das Ding erweitern kannst, und achte auf die Datenstruktur, mit der du die einzelnen Befehle speicherst.
Wenn du das wirklich anfängst, wirst du sicher einiges dabei lernen, egal, ob das Projekt nun ein Erfolg wird oder nicht.

Gruß und viel Erfolg
Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz