PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene Skriptsprachen



Crash-Override
06.07.2005, 19:35
Jap, habe mal, weil ich's vorher noch nicht gehört hatte im Wiki nachgeschlagen was Brainfuck ist, da es heute u.A. im Webentwicklerforum gefallen ist, die Sprache. Naja, scheint ja ne ziemlich tolle Sprache zu sein, dachte ich und wollte zuerst n' Interpreter dafür schreiben, doch dann hab ichs mir anders überlegt und eine eigene Sprache entwickelt: din (klein schreiben!). Der Name steht für nichts, falls ihr euch das fragt.

Den Code von din veröffentliche ich mal unter der GPL, da damit wohl die meisten Freiheiten vertreten werden.

Programme (naja, eher Skripts) in din sehen (wie auch bei Brainfuck) leicht schwierig aus, deshalb habe ich ein Beispiel und eine Programmier-Anleitung beigelegt.

Download hier: LINK (http://crashoverride22.cr.funpic.de/din/)

Wenn jemand interesse oder Fragen oder so hat, kann er posten, anmailen (WordsBG@ffmail.de) oder PN schreiben.

Freezy
06.07.2005, 19:59
Wie siht denn der Syntax in etwa aus?
Ich als überzeugter Hardcore-Windows-Mainstreamer will mir jetzt nicht unbedingt was extra besorgen das *.tar.gz entpacken kann.

Crash-Override
06.07.2005, 20:09
WinRar kann afaik .tar.bz2 entpacken... naja... mom ... ok hab noch ein zip hochgeladen. Windowser müssen allerdings selbst zum Compiler greifen, da ich atm kein Windows zur verfügung hab um n' Binary zu erstellen...

Hello World:



+++++++.*---.+++++++..+++.,*-.----.*--------.+++.------.'+++.


In der Inspirations-Sprache Brainfuck:



++++++++++
[
>+++++++>++++++++++>+++>+<<<<-
]
>++.
>+.
+++++++.
.
+++.
>++.
<<+++++++++++++++.
>.
+++.
------.
--------.
>+.
>.

dadie
06.07.2005, 20:12
1,Das ganze Programm funtz auf Windows genausowie auf Linux.

2,In der eadme steht


#o3: Wie programmiert man in Dim?
Man schreibt seinen Quelltext in eine Textdatei und speichert diese, dann ruft man den Dim Interpreter mit
"./dim [Name der Datei]" auf, oder gibt dem dim interpreter (wenn man ihn ohne Parameter aufruft) den Text
im Live-Modus. Dieser ist besonders gut wenn man nur schnell was ausprobieren möchte.

Das klappt bei mir nicht ich muss bei Linux und Windows "[Datei_ort]/[Datei_name]" eingeben also z.B. "./test.din"

Was soll man sagen also ne Programmier sprach ist das nicht ehr eine Scriptsprach oder ?

Crash-Override
06.07.2005, 20:16
Das klappt bei mir nicht ich muss bei Linux und Windows "[Datei_ort]/[Datei_name]" eingeben also z.B. "./test.din"

Was soll man sagen also ne Programmier sprach ist das nicht ehr eine Scriptsprach oder ?

Nein, du rufst den Interpreter aus dem Linux Binary Verzeicnis mit ./dim auf, dann der Name der Datei z.B. wenn du im Verzeichnis mit dem Interpreter bist, dann gib ./dim Hallo.dim oder sowas ein, oder ruf ihn ohne Parameter auf und gib dann deinen Code in der Console ein...

Edit: Ach ja: Ist ne Skript-Sprache... ist nur 'n falscher Titel...

Edit2: Ich hab nun noch ne PDF Datei als Anleitung geuppt. Weniger Fehler. Besseres Design.

Jesus_666
07.07.2005, 19:33
Ich häng' mich einfach mal an das Topic an - diesen Kram sollte man in einem Thread sammeln.
Ich habe mir gestern abend auch eine obskure Skriptsprache zusammengeschraubt. Ich nenne meine Kreation "TEXT", weil es genau das ist*. In rauhen Mengen. Als Beispiel sei nur mal das TEXT-Hallo Welt (siehe unten) angeführt, das wohl selbst Beatnik in Ehrfurcht erblassen läßt. Vielleicht auch nicht.

An sich gibt es elf Anweisungen.
Der Input wird bei bestimmten Satzzeichen getrennt und die Längen der Bruchstücke werden in ein Array gespeichert. Dann wird das Array von vorne nach hinten durchlaufen, wobei die Zahl in einer Zelle modulo 12 den Namen der nächsten Anweisung ergibt.
Jetzt hat jede Anweisung aber noch Parameter - bis zu drei. Die werden natürlich übersprungen, was den Skriptablauf nicht gerade übersichtlicher macht. Dann gibt es noch eine Anweisung, die einen Parameter $a annimmt und die dann die $a folgenden Zellen als Zeichen ausgibt. Und eine einzige Anweisung, um ($a < $b), ($a == $b) und ($a > $b) zu überprüfen. Und da nicht zwischen Daten und Code unterschieden wird sind die Skripte toll selbstmodifizierend.

Das beste Feature ist aber immer noch, daß jeder beliebige Text ein gültiges Skript ist. Wenn man die GPL durcharbeitet kriegt man sogar ziemlich viel Output.


Downloads! (Edit: Skript gefixt, damit es nicht mehr Shorttags benutzt)
Die hingeschusterte "Sprachdefinition" (http://rpgmaker.info/text/TEXT_Definition) (veröffentlicht unter der GNU FDL (http://rpgmaker.info/text/FDL.txt))
Eine Beispielimplementierung in PHP (für die Shell gedacht) (http://rpgmaker.info/text/text) (veröffentlicht unter der GNU GPL (http://rpgmaker.info/text/GPL.txt))
Beispielcode: Hallo Welt (http://rpgmaker.info/text/hallowelt) (satte 1,3 KiB)

Der ganze Kram gepackt [bzip2 (http://rpgmaker.info/text/text.tar.bz2)] [zip (http://rpgmaker.info/text/text.zip), Windows-Zeilenenden]


* Eigentlich ist mir noch der Name "Verbose" eingefallen, aber ich habe nicht die geringste Lust, das Hello World neu schreiben zu müssen.

Dingsi
07.07.2005, 20:34
Mir war langweilig, also hab ich ein alternatives Hallo-Welt-Skript für TEXT geschrieben. BZW Ich hab mir ein Skript geschrieben, was für mich das Hallo-Welt-Skript schreibt.
omgomfgomgbbqbbqbbqlolomfgomgroflomglolwtflol. lolomfglolb. omgbbqomfgroflbbqbbqomfgwtfbbqroflomgwtfroflomgwtfomfgomgwtfwtflolrofllo. omfgomgroflroflbbqomfgwtfomfgrofllolroflbbqbbqomfgbbqlolomgomgwtflolomfgomgbbqwtfroflomfgomfgwtfo. roflomgwtfroflroflbbqroflroflwtfwtfroflroflomgomfgomgomfgomgomfglolomfgomgbbqroflwtfbbqlolroflomfgbbqbbqwtfl. omgomgroflbbqwtfomgroflwtfbbqlolomgroflomfgroflroflwtfbbqroflbbqbbqbbqwtflolroflroflomgomfgomfglolomgomfgomg. wtflollolroflomfgomfgwtfomgbbqomglolroflwtfroflwtfroflomfgomfgroflbbqroflwtfbbqwtfbbqomfgomgomfgbbqlolroflbbqbb. wtfomfgomgbbqroflroflbbqbbqroflo. bbqbbqroflroflwtfwtfbbqwtfwtflollolbbqroflbbqomgbbqroflbbqwtflollolwtfroflrofllolroflom. wtfbbqwtfwtfomfgbbqomfgomfglolbbqlolomgomglolomgomfgomfglolomfgroflroflwtfroflomglollolroflbbqlollolo. omglolbbqomgroflomfgbbqlollolroflroflomgomfgomfgroflomfglolomfgbbqrofllolomfglolomfgwtfomgomfgroflroflomgomg. bbqbbqomfgomgrofllolomfgomfgbbqwtfwtfwtfomgomglollollolomfgbbqroflomfgomfgroflroflroflomfgomfglolomfgomgbbqomfgbbqlo.
omgwtfomgrofllolbbqbbqrofllolwtfl.