SlideShare ist ein Scribd-Unternehmen logo
Esoterische Programmiersprachen
Was ist eine esoterische Programmiersprache? Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern um ungewöhnliche Sprachkonzepte umzusetzen Esoterischen Programmiersprachen können bei Verständnis normaler Programmiersprachen helfen Die meisten esoterischen Programmiersprachen sind Turing-vollständig
Turing-Vollständigkeit Turing-Vollständigkeit bezeichnet in der Berechenbarkeitstheorie die Eigenschaft einer Programmiersprache oder eines anderen logischen Systems, sämtliche Funktionen berechnen zu können, die eine universelle Turingmaschine berechnen kann. Das bedeutet, dass man mit einer Turing-vollständigen Programmiersprache alles, was sich irgendwie berechnen lässt, berechnen kann. Gegenbeispiel: Tabellenkalkulation ist nicht Turing-vollständig
Piet Nach einem Pionier der abstrakten Kunst benannt Programme sehen aus wie abstrakte Kustwerke Das Programm ist eingeteilt in Farbblöcke und Pixel Es gibt 20 Farben Es gibt einen Richtungszeiger, der angibt, welches der nächste Farbblock sein wird
Beispiele
Brainf*ck BF wurde vom Schweizer Urban Müller erfunden Brainf*ck besitzt acht Befehle, jeweils bestehend aus einem einzigen Zeichen:  <  >  +  -  ,  .  [  ] Damit kann  jede Funktion (d.h. jedes Ein-Ausgabe-Verhalten von Bitmustern) berechnet  werden, die auch mit einer anderen Programmiersprache wie Java oder C++ berechnet  werden kann &quot;Hello World&quot; in Brainf*ck:  ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Befehle: < : Gehe einen Schritt nach rechts ins nächste Feld. > : Gehe einen Schritt nach links ins nächste Feld. + : Erhöhe den Wert des aktuellen Feldes um Eins - : Vermindere den Wert des aktuellen Feldes um Eins . : Gib die Zahl im aktuellen Feld als ASCII-Zeichen aus , : Lies ein ASCII-Zeichen von der Tastatur und schreib es  in das aktuelle Feld 0 0 0 0 3 1 0 0 0 0
Beispiel Code : , + . , : Zeichen einlesen (a = 97) + : Zeichen um eins erhöhen (=98) . : Zeichen ausgeben (98=b) 0 0 0 0 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0
Beispiel Code : , > , > , . < . < . , > , > , : drei Zeichen einlesen  . < . < . : Zeichen ausgeben 0 0 0 0 97 98 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 97 98 99 0 0 0
Schleifen [ : Falls der Inhalt des aktuellen Felds gleich Null ist,  überspringe den Code, der zwischen den entsprechenden  Klammerpaaren [ ... ] steht ] :  Falls der Inhalt des aktuellen Felds ungleich Null ist, springe  zurück zum ersten Befehl, der zwischen zwischen den  entsprechenden Klammerpaaren [ ... ] steht
Beispiel , >+++[ <.+ > -] , > +++ Zeichen in erstes Feld und zweites Feld auf 3  setzen [ <.+ > -] Dreimal das erste Feld ausgeben und um 1  erhöhen Eingabe: a Ausgabe: abc
Aufgaben Finde ein Programm, das alle Zeichen der Eingabe liest und  ausgibt Implementiere ein Programm, das zwei Zahlen addiert Implementiere ein Programm, das den Wert des ersten Feldes  in das zweite Feld kopiert

Weitere ähnliche Inhalte

Andere mochten auch

Programmieren mit Go
Programmieren mit GoProgrammieren mit Go
Programmieren mit Go
Sebastian Harl
 
Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...
Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...
Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...
New Nature Paradigm Tech Analysis: Green, Sustainable, Collaborative
 
Présentation groupe lisa cat berro
Présentation groupe lisa cat berroPrésentation groupe lisa cat berro
Présentation groupe lisa cat berro
lisacatberro
 
Magento1
Magento1Magento1
Magento1
Jabran Abdi
 
Fidelización de celebrities twitter
Fidelización de celebrities twitterFidelización de celebrities twitter
Fidelización de celebrities twitter
Pablo Llanos
 
Nantes - Paris & Paris - Nantes [2012 vs 2011]
Nantes - Paris & Paris - Nantes [2012 vs 2011]Nantes - Paris & Paris - Nantes [2012 vs 2011]
Nantes - Paris & Paris - Nantes [2012 vs 2011]
Jean-Charles Taugourdeau
 
Les mails hotmail
Les mails hotmailLes mails hotmail
Les mails hotmail
EPN Gouvy
 
Wie kommen Lernen und Arbeiten zusammen? - Informare 2011
Wie kommen Lernen und Arbeiten zusammen? - Informare 2011Wie kommen Lernen und Arbeiten zusammen? - Informare 2011
Wie kommen Lernen und Arbeiten zusammen? - Informare 2011
Torsten Fell
 
Rencontres "L'autre sens" : Viavoice - l'EHESS - Le Monde
Rencontres "L'autre sens" : Viavoice - l'EHESS - Le MondeRencontres "L'autre sens" : Viavoice - l'EHESS - Le Monde
Rencontres "L'autre sens" : Viavoice - l'EHESS - Le Monde
Anne-Sophie Esnault
 
Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"
Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"
Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"
Romu
 
Intervención en crisis
Intervención en crisisIntervención en crisis
Intervención en crisis
jcri1974
 
Die Schulbibliothek als Lernort 2.0
Die Schulbibliothek als Lernort 2.0Die Schulbibliothek als Lernort 2.0
Die Schulbibliothek als Lernort 2.0
Guenter K. Schlamp
 
La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...
La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...
La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...
Minnovarc
 
CQPNL Formation Coaching
CQPNL Formation CoachingCQPNL Formation Coaching
CQPNL Formation Coaching
Emiliedavid
 
Neumatica 1.2.
Neumatica 1.2.Neumatica 1.2.
Neumatica 1.2.
Ben Esquivel
 
Windows movie maker
Windows movie maker Windows movie maker
Windows movie maker
EPN Gouvy
 
Ein.
Ein.Ein.
Qualität sozialer Dienstleistungen
Qualität sozialer DienstleistungenQualität sozialer Dienstleistungen
Qualität sozialer Dienstleistungen
Austrian Red Cross
 

Andere mochten auch (20)

Programmieren mit Go
Programmieren mit GoProgrammieren mit Go
Programmieren mit Go
 
X code
X codeX code
X code
 
Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...
Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...
Effektive, Niedrige Kosten, Nicht Sehr Bekannt, Umweltfreundliche Wassertechn...
 
Présentation groupe lisa cat berro
Présentation groupe lisa cat berroPrésentation groupe lisa cat berro
Présentation groupe lisa cat berro
 
Magento1
Magento1Magento1
Magento1
 
Fidelización de celebrities twitter
Fidelización de celebrities twitterFidelización de celebrities twitter
Fidelización de celebrities twitter
 
Nantes - Paris & Paris - Nantes [2012 vs 2011]
Nantes - Paris & Paris - Nantes [2012 vs 2011]Nantes - Paris & Paris - Nantes [2012 vs 2011]
Nantes - Paris & Paris - Nantes [2012 vs 2011]
 
Les mails hotmail
Les mails hotmailLes mails hotmail
Les mails hotmail
 
Wie kommen Lernen und Arbeiten zusammen? - Informare 2011
Wie kommen Lernen und Arbeiten zusammen? - Informare 2011Wie kommen Lernen und Arbeiten zusammen? - Informare 2011
Wie kommen Lernen und Arbeiten zusammen? - Informare 2011
 
Rencontres "L'autre sens" : Viavoice - l'EHESS - Le Monde
Rencontres "L'autre sens" : Viavoice - l'EHESS - Le MondeRencontres "L'autre sens" : Viavoice - l'EHESS - Le Monde
Rencontres "L'autre sens" : Viavoice - l'EHESS - Le Monde
 
Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"
Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"
Communiqué de Presse Babymoov nouvelle gamme "Turbo Vapeur"
 
Archos
ArchosArchos
Archos
 
Intervención en crisis
Intervención en crisisIntervención en crisis
Intervención en crisis
 
Die Schulbibliothek als Lernort 2.0
Die Schulbibliothek als Lernort 2.0Die Schulbibliothek als Lernort 2.0
Die Schulbibliothek als Lernort 2.0
 
La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...
La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...
La Fondation Tissot pour la promotion de l’économie et le redéploiement des c...
 
CQPNL Formation Coaching
CQPNL Formation CoachingCQPNL Formation Coaching
CQPNL Formation Coaching
 
Neumatica 1.2.
Neumatica 1.2.Neumatica 1.2.
Neumatica 1.2.
 
Windows movie maker
Windows movie maker Windows movie maker
Windows movie maker
 
Ein.
Ein.Ein.
Ein.
 
Qualität sozialer Dienstleistungen
Qualität sozialer DienstleistungenQualität sozialer Dienstleistungen
Qualität sozialer Dienstleistungen
 

Esoterische Programmiersprachen nummer 2

  • 2. Was ist eine esoterische Programmiersprache? Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern um ungewöhnliche Sprachkonzepte umzusetzen Esoterischen Programmiersprachen können bei Verständnis normaler Programmiersprachen helfen Die meisten esoterischen Programmiersprachen sind Turing-vollständig
  • 3. Turing-Vollständigkeit Turing-Vollständigkeit bezeichnet in der Berechenbarkeitstheorie die Eigenschaft einer Programmiersprache oder eines anderen logischen Systems, sämtliche Funktionen berechnen zu können, die eine universelle Turingmaschine berechnen kann. Das bedeutet, dass man mit einer Turing-vollständigen Programmiersprache alles, was sich irgendwie berechnen lässt, berechnen kann. Gegenbeispiel: Tabellenkalkulation ist nicht Turing-vollständig
  • 4. Piet Nach einem Pionier der abstrakten Kunst benannt Programme sehen aus wie abstrakte Kustwerke Das Programm ist eingeteilt in Farbblöcke und Pixel Es gibt 20 Farben Es gibt einen Richtungszeiger, der angibt, welches der nächste Farbblock sein wird
  • 6. Brainf*ck BF wurde vom Schweizer Urban Müller erfunden Brainf*ck besitzt acht Befehle, jeweils bestehend aus einem einzigen Zeichen: < > + - , . [ ] Damit kann jede Funktion (d.h. jedes Ein-Ausgabe-Verhalten von Bitmustern) berechnet werden, die auch mit einer anderen Programmiersprache wie Java oder C++ berechnet werden kann &quot;Hello World&quot; in Brainf*ck: ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
  • 7. Befehle: < : Gehe einen Schritt nach rechts ins nächste Feld. > : Gehe einen Schritt nach links ins nächste Feld. + : Erhöhe den Wert des aktuellen Feldes um Eins - : Vermindere den Wert des aktuellen Feldes um Eins . : Gib die Zahl im aktuellen Feld als ASCII-Zeichen aus , : Lies ein ASCII-Zeichen von der Tastatur und schreib es in das aktuelle Feld 0 0 0 0 3 1 0 0 0 0
  • 8. Beispiel Code : , + . , : Zeichen einlesen (a = 97) + : Zeichen um eins erhöhen (=98) . : Zeichen ausgeben (98=b) 0 0 0 0 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0
  • 9. Beispiel Code : , > , > , . < . < . , > , > , : drei Zeichen einlesen . < . < . : Zeichen ausgeben 0 0 0 0 97 98 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 97 98 99 0 0 0
  • 10. Schleifen [ : Falls der Inhalt des aktuellen Felds gleich Null ist, überspringe den Code, der zwischen den entsprechenden Klammerpaaren [ ... ] steht ] : Falls der Inhalt des aktuellen Felds ungleich Null ist, springe zurück zum ersten Befehl, der zwischen zwischen den entsprechenden Klammerpaaren [ ... ] steht
  • 11. Beispiel , >+++[ <.+ > -] , > +++ Zeichen in erstes Feld und zweites Feld auf 3 setzen [ <.+ > -] Dreimal das erste Feld ausgeben und um 1 erhöhen Eingabe: a Ausgabe: abc
  • 12. Aufgaben Finde ein Programm, das alle Zeichen der Eingabe liest und ausgibt Implementiere ein Programm, das zwei Zahlen addiert Implementiere ein Programm, das den Wert des ersten Feldes in das zweite Feld kopiert