Eigene Programmiersprache machen? [ERLEDIGT]

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
TheShadow
Beiträge: 84
Registriert: 10.09.2004 16:19

Beitrag von TheShadow »

Eine Programmiersprache zu entwickeln gehört zu den komplexeren Dingen die man programmieren kann - noch schwerer ist wohl nur ein OS zu programmieren...
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Vielleicht gibt es aber doch noch Hoffnungen: Warum versuchst du nicht zuerst einen Interpreter?

Folge einfach PHP oder CGI/Perl als Vorbild. Dann können deine Benutzer ihren Quelltext sogar in Klartext schreiben (sogar mit dem Windows-Standardeditor) und ihn von deinem interpreter ausführen lassen.

Nachteil: Ein Interpreter ist langsamer als ein Compiler bzw. die fertige EXE die deine benutzer sonst erstellen würden.

Vorteil: Es ist möglich, das du neben PHP und CGI deine eigene Programmiersprache schreiben kannst, die ebenso auf Webservern laufen. Nenne deine Sprache dann doch einfach TNL, das Dateiformat *.tnl :wink:
Egal, ob du eine solche Sprache für Webserver oder als "Ersatz" für eigene EXE-Dateien/Compiler schreibst, das wird einfacherer sein.

Als Erinnerung: Nehmen wir an, ich hätte eine Datei Mein Script.tnl, die in Klartext geschrieben so aussieht:

Code: Alles auswählen

Fenster(100, 200, 800, 600)
Knopf(50, 50, "MyKopf")

ErstelleDatei "C:\MyDatei.txt"
Schreibe "Hallo Welt!"
Schreibe "Hallo Geld!
DateiFertig
Dein Programm liest also zeile für zeile (ReadString()) und entscheidet, was zu tun ist. Oder es bemerkt, dass eine Datei erstellt werden soll. Nächste zeile: Aha, das Programm soll etwas in die Datei schreiben. Nächste zeile Stooooop! Da erkennt dein interpreter, dass ein Syntaxfehler vorliegt (Anführungszeichen vergessen), bricht ab und loggt das Event mit.

Solltest du Erfahrungen mit CGI haben (z. B. print), dann siehst du, wie der Interpreter arbeiten muss, damit er dein CGI-Skript verarbeiten kann. PHP wäre hier nicht soooo gut, da hier zusätzlich ein Parser zum Einsatz kommen muss, der auf <? und ?> achtet.
Zuletzt geändert von AND51 am 24.08.2006 21:57, insgesamt 1-mal geändert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Bevor er nicht richtig programmieren kann ist es, als würde ein Blinder ein Bild malen wollen. Das hat wirklich keinen Sinn.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Deswegen sag ich ja, ein Interpreter ist einfacherer:
Da kann er nach und nach bzw. modularisch neue Funktionen finzufügen, die in seiner Programmiersprache aufgerufen werden können. Wenn er merkt: "So weit bin ich schon, aber es fehlt noch die File-Library aus PB." Dann setzt er sich hin, arbeitet die Fil-Sektion durch, versteht sie und überträgt sie auf sein Projekt.


Meine Vorstellung ist, dass bei dem ganzen Kram mit ASM und EXE-Dateien usw. Änbderungen und/oder nachträgliche Änderungen (wie z. B. das hinzufügen der File-Befehle) sehr, sehr schwer ist.


ich will ja hier zu niemnden etwas zwingen. Aber ich kenne das: Ich wollte auch imemr wie TNL immer etwas erreichen, das zu schwer ist. Aber von euch hört ja auch keiner auf seine Eltern, die es nur gut mit einem meinen (so wie ihr es gut mit TNL meint), bis ihr dann selber die Erfahrung macht, dass ihr scheitert. Dann lernt man aber wenigstens draus.

Also, lasst ihn doch einfach machen. :allright: Auch, wenn ich bei PB bleibe und nicht auf die TNL-Sprache ( :wink: ) umsteige, interessiert mich sein Fortschritt / das Ergebnis schon.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Proton
Beiträge: 152
Registriert: 20.06.2006 12:21
Wohnort: Eckernförde /Stadtbergen

Beitrag von Proton »

>>the Nameless: "Kann man, auch wenn man Assembler umgeht, einen Compiler schreiben?"

Die Frage an sich zeigt schon, daß DU es nicht kannst !
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

AND51 hat geschrieben:Vielleicht gibt es aber doch noch Hoffnungen: Warum versuchst du nicht zuerst einen Interpreter?

Folge einfach PHP oder CGI/Perl als Vorbild. Dann können deine Benutzer ihren Quelltext sogar in Klartext schreiben (sogar mit dem Windows-Standardeditor) und ihn von deinem interpreter ausführen lassen.

Nachteil: Ein Interpreter ist langsamer als ein Compiler bzw. die fertige EXE die deine benutzer sonst erstellen würden.

Vorteil: Es ist möglich, das du neben PHP und CGI deine eigene Programmiersprache schreiben kannst, die ebenso auf Webservern laufen. Nenne deine Sprache dann doch einfach TNL, das Dateiformat *.tnl :wink:
Egal, ob du eine solche Sprache für Webserver oder als "Ersatz" für eigene EXE-Dateien/Compiler schreibst, das wird einfacherer sein.

Als Erinnerung: Nehmen wir an, ich hätte eine Datei Mein Script.tnl, die in Klartext geschrieben so aussieht:

Code: Alles auswählen

Fenster(100, 200, 800, 600)
Knopf(50, 50, "MyKopf")

ErstelleDatei "C:\MyDatei.txt"
Schreibe "Hallo Welt!"
Schreibe "Hallo Geld!
DateiFertig
Dein Programm liest also zeile für zeile (ReadString()) und entscheidet, was zu tun ist. Oder es bemerkt, dass eine Datei erstellt werden soll. Nächste zeile: Aha, das Programm soll etwas in die Datei schreiben. Nächste zeile Stooooop! Da erkennt dein interpreter, dass ein Syntaxfehler vorliegt (Anführungszeichen vergessen), bricht ab und loggt das Event mit.

Solltest du Erfahrungen mit CGI haben (z. B. print), dann siehst du, wie der Interpreter arbeiten muss, damit er dein CGI-Skript verarbeiten kann. PHP wäre hier nicht soooo gut, da hier zusätzlich ein Parser zum Einsatz kommen muss, der auf <? und ?> achtet.
ganau das habe ich im Ansatz schon mal gemacht damit ich mein kleinen Bruder (12 Jahre) auch ans programmieren führen kann.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wie lernen wir denn in der Shcule Informatik (Jgst. 11) ?

Thema: 1. Hj. TurboPascal.

Statt nun"echte" TP Befehle zu lernen, kommt eine sog. "Toolbox" (ja, wir müssen die so nennen) zum Einsatz. Darin sind u. a. folgende befehel enthalten: schritt_vor, drehe_links, zeichne(), platzmuster_gleich() (nur einige von ein paar mehr.

Mit diesen Befehelen kann man nun einen Cursor auf einem 38x21 Pixel großem Zeichenblatt bewegen und malen.



Ein Interpreter wie TNL ihn erstellen könnte, kann ja erst einmal auch so einfache Befehele enthalten, die der Benutzer lernen kann. Die TNL2-Sprache könnte dann ja erweiterte Befehele wie Repeat, Goto Dateien, oder Consolen-Befehle enthalten.



So, jetzt will ich aber mal wissen, wie TNL sich entscheidet bzw. wie seine Arbeit wird! :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Chrm, chrm... ich wüsste nicht, dass ich irgendwo erwähnt hätte, dass ich solches vorhabe. Es ging nur darum, die Frage "Kann man ein Compiler ohne Assembler programmieren?" mit Ja oder nein zu beantworten. Und TS-Soft hat es auch so gemacht. Ungefähr.

Ein Skript Interpreter ist eine schöne Idee, bloß wozu brauch ich einen? :)
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Zum interpretieren von deinen selbst gekritzeltem?
Bild
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

arthur, kannst ja mal dein tutorial über compiler hochladen... hab ich zwar noch hier rumliegen, weis aber nich ob ichs hochladen darf :-D

Naja die PDF halt ;-)
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Antworten