Scriptoria Botanica (Esoterische Programmiersprache)
Übersicht

![]() |
RatchetBetreff: Scriptoria Botanica (Esoterische Programmiersprache) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Scriptoria Botanica ist der Ansatz einer esoterische Programmiersprache. Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern ungewöhnliche Sprachkonzepte umsetzen. Am bekanntesten dürfte wohl Brainfuck sein.
Es gibt zum Beispiel Sprachen bei denen sich der Quelltext wie ein Kochrezept oder ein Shakespeare Drama lesen lassen (siehe http://de.wikipedia.org/wiki/C...ersprache) oder http://de.wikipedia.org/wiki/S...g_Language) Scriptoria Botanica bildet den Programmablauf in einer naturellen Umgebung ab in der verschiedene Pflanzen verwendeet werden. Dabei repräsentiert jeder Pflanzentyp einen anderen Datentyp. Mit anderen Worten: würden Elfen eine Programmiersprache entwickeln würde sie wohl ungefähr so aussehen. Das ist alles rein experimentell! Bedingungen gibt es noch nicht. Folgendes ist im Moment möglich:
Download Scriptoria Botanica 0.4 Es handelt sich um einen Kommandozeilen-Interpreter. Code: [AUSKLAPPEN] sb.exe Scriptdatei
aufrufen um ein Script zu starten oder im Exlorer die Datei auf die Exe ziehen. Beispiel-Scripte liegen bei. Warnung! Ab hier vergesst alles war ihr je über strukturierte Programmierung gelernt habt! Es gibt momentan nur zwei Datentypen: Blumen und Grass. Blumen sind Integers und/oder Floats, Gras sind Strings. Eine Blume hat Blüten und Blätter. Die Anzahl der Blüten ist der Ganzzahlwert, die Anzahl der Blätter der Gleitkommewert (alles hinter dem Komma). Wenn wir also eine Blume mit 7 Blüten und 3 Blättern haben ist das im Endeffekt ein Float mit dem Wert 7,3. Gras besteht aus vielen Halmen. Jeder Halm ist ein Buchstabe. So ergibt sich aus einer Grasfläche ein String. Die Farbe welche die Blumen oder das Gras bekommt ist sozusagen der Name der Variable (rote Blume, grünes Gras). Man kann aber auch einfach jedes andere beliebige Adjektiv oder Wort benutzen (weiches Gras); es muss keine Farbe sein. Im Folgendem erkläre ich die einzelnen Kommandos. Zur Erleichterung schreibe ich immer noch die passenden Basic Befehle hinzu um das Verständnis zu erleichtern. Die grundlegenden Sprachelemente Mutter Natur spricht (einen Text ausgeben) Code: [AUSKLAPPEN] mother earth says: Hallo Welt
Print("Hallo Welt") Mutter Natur zuhören (Texteingabe) Code: [AUSKLAPPEN] listen to mother earth, green grass
Green_Gras = Input Blumen anpflanzen (Integer Variablen erstellen) Code: [AUSKLAPPEN] plant a red flower
Red_Flower: Int Blumen anpflanzen und/oder füllen (Integer Variablen erstellen und/oder Wert setzen) Code: [AUSKLAPPEN] plant a red flower with 1 bloom
Red_Flower: Int = 1 Blumen anpflanzen und/oder füllen (Float Variablen erstellen und/oder Wert setzen) Code: [AUSKLAPPEN] plant a red flower with 1 bloom and 2 leafs
Red_Flower: Float = 1.2 Gras anpflanzen (String Variablen erstellen) Code: [AUSKLAPPEN] plant some green grass
Green_Grass: String Gras anpflanzen und/oder füllen (String Variablen erstellen und/oder Wert setzen) Code: [AUSKLAPPEN] plant some green grass with blades of Hallo Welt
Green_Grass: String = "Hallo Welt" Blüten erblühen lassen (Integer Variablen addieren) Code: [AUSKLAPPEN] grow 2 blooms on the red flower
Red_Flower = Red_Flower + 2 Blätter erblühen lassen (Float Variablen addieren) Code: [AUSKLAPPEN] grow 2 blooms and 4 leafs on the red flower
Red_Flower = Red_Flower + 2.4 Blüten abreißen (Integer Variablen subtrahieren) Code: [AUSKLAPPEN] pick 2 blooms from the red flower
Red_Flower = Red_Flower - 2 Blätter abreißen (Float Variablen subtrahieren) Code: [AUSKLAPPEN] pick 2 blooms and 4 leafs from the red flower
Red_Flower = Red_Flower - 2.4 Pflanzen ansehen (Variablen ausgeben) Code: [AUSKLAPPEN] look at the red flower
look at the green grass Print(Red_Flower) Print(Green_Grass) Was habe ich angepflanzt (Alle Varablen ausgeben) Code: [AUSKLAPPEN] what is blooming
Print(AllPlants) Werte von Blumen/Grass direkt einbetten (Funktioniert nicht nur bei Textausgabe sondern überall!) Code: [AUSKLAPPEN] plant some green grass with blades of Charlie
mother earth says: ~green grass~ plant some other grass with blades of My name is ~green grass~ Befehle mit then verketten Code: [AUSKLAPPEN] plant a red flower then look at the red flower
Schleifen Code: [AUSKLAPPEN] mother earth says: Hello 3 times
plant a red flower with 3 blooms mother earth says: Hello World ~red flower~ times For i = 1 To 3 Print("Hello") Next Red_Flower: Int = 3 For i = 1 To Red_Flower Print("Hello World") Next Bedingungen Code: [AUSKLAPPEN] when the red flower has less than 3 blooms then grow 1 bloom on the red flower otherwise nothing
If Red_Flower < 3 Then Red_Flower :+ 1 Else 'nichts End If Ein Beispielprogramm: Code: [AUSKLAPPEN] plant a red flower with 1 bloom
look at the red flower mother earth says: Look, a wonderful red flower! plant some green grass listen to mother earth, green grass look at the green grass plant a yellow flower grow 3 blooms on the yellow flower look at the yellow flower pick 1 bloom and 5 leafs from the yellow flower what is blooming plant a orange flower with 1 bloom then grow 1 bloom on the orange flower then look at the orange flower plant a red flower plant a blue flower with 10 blooms grow 1 bloom on the red flower ~blue flower~ times look at the red flower plant a black flower with 1 bloom mother earth says: ~black flower~ then when the black flower has less blooms than 5 then grow 1 bloom on the black flower otherwise leave endless times Das würde in Basic so aussehen: Code: [AUSKLAPPEN] Red_Flower: Int = 1
Print(Red_Flower) Print("Look, a wonderful red flower!") Green_Grass: String Green_Grass = Input Print(Green_Grass) Yellow_Flower: Double Yellow_Flower = Yellow_Flower + 3 Print(Yellow_Flower) Yellow_Flower = Yellow_Flower - 1.5 Print(AllPlants) Orange_Flower: Int = 1; Orange_Flower :+ 1; Print(Orange_Flower) Red_Flower: Int Blue_Flower: Int = 10 For i = 1 To Blue_Flower Red_Flower :+ 1 Next Print(Red_Flower) Black_Flower: Int = 1 While Black_Flower < 5 Print(Black_Flower) Black_Flower :+ 1 Wend |
||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
- Zuletzt bearbeitet von Ratchet am Fr, Jul 17, 2009 10:11, insgesamt 19-mal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ziemlich nutzlos, aber interessant. ![]() Schönes Projekt. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sieht nett aus, ich werde auf jeden Fall mal weiterverfolgen, was daraus wird. Ich mag esoterische Programmiersprachen. ![]() Ein Problem gibt es allerdings doch: Wenn ich einen Script laufen lassen möchte, dann öffnet er kurz die DOSBox, führt aus, beendet diese allerdings direkt wieder, sodass ich nicht die Ergebnisse sehen kann... |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
Von nützlich war auch nie die Rede ^^
Keine der esoterische Programmiersprachen ist besonders nützlich ![]() @ n-Halbleiter: Ja ist doch klar. Wenn nur ein paar Prints gemacht werden beendet sich das Programm danach selber. Wie halt jedes Konsolen Programm. Starte es von der Konsole aus, dann siehst du was. |
||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
apropos esoterische programmierprache.
googelt mal nach Piet, da besteht der "SourceCode" aus einem Bild(SoureCode absichtlich in " stehen, da es kein Code im eigentlichen sinne ist) |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keine Bedingungen oder Schleifen? Keine Grundrechenarten?
Durch den Garten laufen und Blumen miteinander Kreuzen wäre ganz nützlich wenn man irgendetwas damit anfangen wollte. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ratchet: Ich würde trotzdem gerne sehen, was deine Beispielprogramme machen. ![]() Es wäre vielleicht super, wenn am Ende immer auf einen Tastendruck gewartet wird... Wobei, das kann Ich ja eigentlich selbst machen. ![]() ![]() Xeres: Das ist 'ne Esoterische Programmiersprache, die brauchen sowas nicht (siehe SPL und Brainfuck)... ![]() |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Interessant, voll der hippie code
Mein Fav http://lolcode.com/ |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich "bevorzuge" Befunge. Aber das mit den Pflanzen hört sich nett an. Vielleicht lernt meine Mutter ja doch nochmal programmieren... | ||
WIP: Vorx.Engine |
MacReeg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Esoterische Programmiersprache sind was Hübsches für den Zeitvertreib zwischendurch!
z.B. ASCIIMash http://inc-x.blogspot.com/2007...n-100.html n-Halbleiter hat Folgendes geschrieben: Xeres: Das ist 'ne Esoterische Programmiersprache, die brauchen sowas nicht (siehe SPL und Brainfuck)...
![]() Gerade Brainfuck ist als Turing-vollständige Sprache konzepiert und kann somit natürlich Grundrechenarten und Schleifen ausführen. Andere EPs sind vielleicht in diesem Bereich ein bisschen eingeschränkter. http://de.wikipedia.org/wiki/Brainfuck Gruß Ernst |
||
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Xeres: Das ist Version 0.1 die ich an einem Vormittag geschrieben habe; was erwartest du? ![]() |
||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
![]() |
peacemaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sind echt mal paar geile Ideen, schöng gemacht! | ||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
![]() |
MikeDeeBetreff: Re: Scriptoria Botanica (Esoterische Programmiersprache) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ratchet hat Folgendes geschrieben: Tulpen trocknen (Integer Variablen subtrahieren)
Code: [AUSKLAPPEN] dry the blue tulip 5 times
Blue_Tulip = Blue_Tulip - 2 ich glaub da ist dir ein fehler passiert |
||
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden. |
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 0.2 ist jetzt fertig. Die komplette Syntax wurde überarbeitet und ist jetzt viel sinnvoller und systematischer. Beschreibung und Download siehe erster Post. | ||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
wonderful | ||
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
In Version 0.3 sind jetzt Schleifen, das Verketten von Befehlen und das direkte Einbetten von Variablenwerten im gesamten Code möglich. Beispiele und Download im ersten Post. | ||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich find das lustig, ich werd mal versuchen ein programm zu schreiben, ichw ar immermal ein begabter gärtner, also werd ich mal ein paar blumen pflanzen und schauen was bei rauskommt
aber das ist eine schöne idee und es ist auch gut umgesetzt, amch weiter so ![]() ys, aletes |
||
![]() |
Ratchet |
![]() Antworten mit Zitat ![]() |
---|---|---|
@aletes: Danke. Bin gespannt was du für ein Programm schreiben willst. Viel Funktionalität bietet die Sprache ja noch nicht ^^ | ||
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro] |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kp, mal schauen. Aber ich finde es lustig, ein programm aus Blumen/Gras pflanzen und pflegen zu schreiben ![]() aber ich denke, ich warte noch ein wenig, bis deine Sprache ein paar mehr funktionen aufweißt ![]() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie kommt man eigentlich auf die Idee so eine esoterische Sprache zu entwickeln?
Ich wollte mich nach den ersten im Internet aufgefundenen Sprachen auch mal an so einem "Schwachsinn" versuchen nur hab bis heute keine Idee, was 1.) noch nicht existiert 2.) halbwegs einfach ist, nicht dass das ein ein-Jahres-Projekt wird 3.) auch noch n bisschen Humor enthält wenn möglich Vorschläge hör ich gern ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group