Eigene Programmiersprache machen? [ERLEDIGT]
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
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:
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.
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

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
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
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.
Auch, wenn ich bei PB bleibe und nicht auf die TNL-Sprache (
) umsteige, interessiert mich sein Fortschritt / das Ergebnis schon.
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.


PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
ganau das habe ich im Ansatz schon mal gemacht damit ich mein kleinen Bruder (12 Jahre) auch ans programmieren führen kann.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![]()
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: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.Code: Alles auswählen
Fenster(100, 200, 800, 600) Knopf(50, 50, "MyKopf") ErstelleDatei "C:\MyDatei.txt" Schreibe "Hallo Welt!" Schreibe "Hallo Geld! DateiFertig
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.
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
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!
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!

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
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?
Ein Skript Interpreter ist eine schöne Idee, bloß wozu brauch ich einen?
