Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Esoterische Programmiersprachen

1,512 views

Published on

  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Esoterische Programmiersprachen

  1. 1. Esoterische Programmiersprachen
  2. 2. Was ist eine esoterische Programmiersprache? <ul><li>Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern um ungewöhnliche Sprachkonzepte umzusetzen </li></ul><ul><li>Esoterischen Programmiersprachen können bei Verständnis normaler Programmiersprachen helfen </li></ul><ul><li>Die meisten esoterischen Programmiersprachen sind Turing-vollständig </li></ul>
  3. 3. Turing-Vollständigkeit <ul><li>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. </li></ul><ul><li>Das bedeutet, dass man mit einer Turing-vollständigen Programmiersprache alles, was sich irgendwie berechnen lässt, berechnen kann. </li></ul><ul><li>Gegenbeispiel: Tabellenkalkulation ist nicht Turing-vollständig </li></ul>
  4. 4. Piet <ul><li>Nach einem Pionier der abstrakten Kunst benannt </li></ul><ul><li>Programme sehen aus wie abstrakte Kustwerke </li></ul><ul><li>Das Programm ist eingeteilt in Farbblöcke und Pixel </li></ul><ul><li>Es gibt 20 Farben </li></ul><ul><li>Es gibt einen Richtungszeiger, der angibt, welches der nächste Farbblock sein wird </li></ul>
  5. 5. Beispiele
  6. 6. Brainf*ck <ul><li>BF wurde vom Schweizer Urban Müller erfunden </li></ul><ul><li>Brainf*ck besitzt acht Befehle, jeweils bestehend aus einem einzigen Zeichen: < > + - , . [ ] </li></ul><ul><li>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 </li></ul><ul><li>&quot;Hello World&quot; in Brainf*ck: ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. </li></ul>
  7. 7. Befehle: <ul><li>< : Gehe einen Schritt nach rechts ins nächste Feld. </li></ul><ul><li>> : Gehe einen Schritt nach links ins nächste Feld. </li></ul><ul><li>+ : Erhöhe den Wert des aktuellen Feldes um Eins </li></ul><ul><li>- : Vermindere den Wert des aktuellen Feldes um Eins </li></ul><ul><li>. : Gib die Zahl im aktuellen Feld als ASCII-Zeichen aus </li></ul><ul><li>, : Lies ein ASCII-Zeichen von der Tastatur und schreib es in das aktuelle Feld </li></ul>0 0 0 0 3 1 0 0 0 0
  8. 8. Beispiel <ul><ul><li>Code : , + . </li></ul></ul><ul><ul><li>, : Zeichen einlesen (a = 97) </li></ul></ul><ul><ul><li>+ : Zeichen um eins erhöhen (=98) </li></ul></ul><ul><ul><li>. : Zeichen ausgeben (98=b) </li></ul></ul>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. 9. Beispiel <ul><ul><li>Code : , > , > , . < . < . </li></ul></ul><ul><ul><li>, > , > , : drei Zeichen einlesen </li></ul></ul><ul><ul><li>. < . < . : Zeichen ausgeben </li></ul></ul>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. 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. 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. 12. Aufgaben <ul><li>Finde ein Programm, das alle Zeichen der Eingabe liest und ausgibt </li></ul><ul><li>Implementiere ein Programm, das zwei Zahlen addiert </li></ul><ul><li>Implementiere ein Programm, das den Wert des ersten Feldes in das zweite Feld kopiert </li></ul>

×