<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Ook%21</id>
	<title>Ook! - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Ook%21"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Ook!&amp;action=history"/>
	<updated>2026-06-20T19:40:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Ook!&amp;diff=327390&amp;oldid=prev</id>
		<title>imported&gt;Nicowa: /* Weblinks */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Ook!&amp;diff=327390&amp;oldid=prev"/>
		<updated>2026-01-09T12:11:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Weblinks&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039;&amp;#039; ist eine Variante der [[Esoterische Programmiersprache|esoterischen Programmiersprache]] [[Brainfuck]] für [[Orang-Utan]]s, entwickelt von David Morgan-Mar.&amp;lt;ref&amp;gt;[http://www.dangermouse.net/esoteric/ DM&amp;#039;s Esoteric Programming Languages]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Camille Paloque-Bergès: &amp;#039;&amp;#039;Poétique des codes sur le réseau informatique&amp;#039;&amp;#039;, Paris 2008, S. 73&amp;lt;/ref&amp;gt;&lt;br /&gt;
Obwohl bei &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; der humoristische Ansatz im Vordergrund steht, eignet es sich gut dazu, einige Grundlagen zum Design von Programmiersprachen zu verdeutlichen. Wie &amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039; ist auch &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; [[Turing-Vollständigkeit|Turing-vollständig]], obwohl es einen sehr kleinen Syntaxumfang hat.&lt;br /&gt;
&lt;br /&gt;
== Sprachdesign ==&lt;br /&gt;
&lt;br /&gt;
Die Designkriterien der Sprache sind:&lt;br /&gt;
# Eine Programmiersprache sollte schreib- und lesbar für Orang-Utans sein.&lt;br /&gt;
# Die Syntax sollte einfach sein, leicht zu merken und das Wort Monkey (engl. Affe) vermeiden.&lt;br /&gt;
# Bananen sind gut.&lt;br /&gt;
Augenscheinlich ist diese Programmiersprache angelehnt an die [[Figuren und Schauplätze der Scheibenwelt-Romane#Der Bibliothekar|Bibliothekarsfigur]] aus den [[Scheibenwelt]]romanen von [[Terry Pratchett]] (Vergleiche hierzu dessen Eigenschaft, jedes Wort und jeden Satz mit „Ook“ („Ugh“ im Deutschen) ausdrücken zu können und seine Empfindlichkeit, wenn er als „Monkey“ bezeichnet wird – er bevorzugt „Ape“).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; hat nur drei Syntaxelemente:&lt;br /&gt;
* Ook.&lt;br /&gt;
* Ook?&lt;br /&gt;
* Ook!&lt;br /&gt;
Diese werden zu Zweiergruppen (2-[[Tupel]]n) zusammengefasst. Die Ook-Tupel (&amp;#039;&amp;#039;Ook? Ook? &amp;#039;&amp;#039; wird nicht verwendet) lassen sich wie [[Brainfuck]]symbole nutzen, das ebenfalls nur acht Befehlsbezeichnungen kennt. Jedes &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039;-Programm besteht also aus einer geraden Zahl von Ooks. Zeilenumbrüche werden ignoriert.&lt;br /&gt;
&lt;br /&gt;
Es gibt inzwischen &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039;-[[Interpreter]] in [[Ruby (Programmiersprache)|Ruby]], [[Python (Programmiersprache)|Python]], [[Perl (Programmiersprache)|Perl]] und [[C-Sharp|C#]] sowie einen &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039;-zu-&amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039;- und &amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039;-zu-&amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039;-Konverter in [[Java (Programmiersprache)|Java]], [[Object Pascal]] sowie &amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; selbst.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; ist formal gesehen identisch mit &amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039;. Die Syntax der beiden Sprachen ist übereinstimmend, lediglich die Darstellung in den Symbolen unterscheidet sich. Durch die Verwendung der drei „Ook“-Symbole wird die [[American Standard Code for Information Interchange|ASCII]]-Darstellung von &amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039; auf eine zweistellige ternäre Codierung umgesetzt&amp;lt;ref&amp;gt;Eine dreistellige binäre Codierung von &amp;#039;&amp;#039;Brainfuck&amp;#039;&amp;#039; liegt beispielsweise der Sprache &amp;#039;&amp;#039;Hohoho!&amp;#039;&amp;#039; zugrunde, welche speziell auf die Bedürfnisse von Weihnachtsmännern zugeschnitten ist [https://arxiv.org/abs/1712.06259].&amp;lt;/ref&amp;gt;. Damit wird u. a. verdeutlicht, dass sich formale Sprachen ohne Änderung der Funktion in andere Darstellungen überführen lassen.&lt;br /&gt;
&lt;br /&gt;
== Vergleich der Befehlsbezeichnungen von Ook! und Brainfuck ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|class=&amp;quot;hintergrundfarbe6&amp;quot; |Ook!&lt;br /&gt;
|class=&amp;quot;hintergrundfarbe6&amp;quot; |Ook!&lt;br /&gt;
|class=&amp;quot;hintergrundfarbe6&amp;quot; |Brainfuck&lt;br /&gt;
|class=&amp;quot;hintergrundfarbe6&amp;quot; |Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Ook. Ook. &lt;br /&gt;
|. .||+||den Wert der aktuellen Zelle um 1 erhöhen&lt;br /&gt;
|-&lt;br /&gt;
|Ook! Ook! &lt;br /&gt;
|! !||-||den Wert der aktuellen Zelle um 1 verringern&lt;br /&gt;
|-&lt;br /&gt;
|Ook. Ook? &lt;br /&gt;
|. ?||&amp;gt;||eine Zelle nach rechts gehen&lt;br /&gt;
|-&lt;br /&gt;
|Ook? Ook. &lt;br /&gt;
|? .||&amp;lt;||eine Zelle nach links gehen&lt;br /&gt;
|-&lt;br /&gt;
|Ook! Ook? &lt;br /&gt;
|! ?||[||Schleifenanfang – die Schleife durchlaufen solange der Wert der aktuellen Zelle ungleich 0 ist&lt;br /&gt;
|-&lt;br /&gt;
|Ook? Ook! &lt;br /&gt;
|? !||]||Schleifenende – beendet die Schleife, wenn der Wert der aktuellen Zelle gleich 0 ist&lt;br /&gt;
|-&lt;br /&gt;
|Ook! Ook.&lt;br /&gt;
|! .||.||den Wert der aktuellen Zelle ausdrucken&lt;br /&gt;
|-&lt;br /&gt;
|Ook. Ook! &lt;br /&gt;
|. !||,||einen Wert von der Tastatur in die aktuelle Zelle einlesen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beispielprogramm ==&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Beispielprogramm, das in &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; programmiert ist. Es gibt &amp;#039;&amp;#039;Hello World!&amp;#039;&amp;#039; auf der Standardausgabe aus.&lt;br /&gt;
&lt;br /&gt;
 Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.&lt;br /&gt;
 Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?&lt;br /&gt;
 Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.&lt;br /&gt;
 Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.&lt;br /&gt;
 Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.&lt;br /&gt;
 Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.&lt;br /&gt;
 Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!&lt;br /&gt;
 Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.&lt;br /&gt;
&lt;br /&gt;
== Vereinfachung ==&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Beispielprogramm, das in der vereinfachten Variante von &amp;#039;&amp;#039;Ook!&amp;#039;&amp;#039; die Standardausgabe &amp;#039;&amp;#039;Hello World!&amp;#039;&amp;#039; ausgibt.&lt;br /&gt;
&lt;br /&gt;
 . ? . . . . . . . . . . . . . .&lt;br /&gt;
 . . . . ! ? ? . . . . . . . . .&lt;br /&gt;
 . . . . . . . . . ? ! ! ? ! ? .&lt;br /&gt;
 ! . . ? . . . . . . . . . . . .&lt;br /&gt;
 . . ! ? ? . . . . . . . . . . ?&lt;br /&gt;
 ! ! ? ! ? . . . ! . . . . . . .&lt;br /&gt;
 . . . . . . . . ! . ! . . . . .&lt;br /&gt;
 . . ! . . ? . ? . ? . . . . . .&lt;br /&gt;
 . . . . . . . . . . ! ? ? . . .&lt;br /&gt;
 . . . . . . . ? ! ! ? ! ? . ! .&lt;br /&gt;
 . ? . ? . ? . . . . . . . . . .&lt;br /&gt;
 . . . . . . . . . . ! ? ? . . .&lt;br /&gt;
 . . . . . . . . . . . . . . . .&lt;br /&gt;
 . ? ! ! ? ! ? . ! ! ! ! ! ! ! .&lt;br /&gt;
 ? . ? . ? . ? . ! . . . . . . .&lt;br /&gt;
 ! . ! ! ! ! ! ! ! ! ! ! ! ! ! .&lt;br /&gt;
 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !&lt;br /&gt;
 ! . . ? . ? . . ! .&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* https://www.dangermouse.net/esoteric/ook.html – Offizielle Internetseite.&lt;br /&gt;
* {{Webarchiv | url=http://bluesorcerer.net/esoteric/ook.html | wayback=20090207111047 |text=Ook# – Compiler für das .Net-Framework}}&lt;br /&gt;
* [http://search.cpan.org/perldoc?Acme::Ook Acme::Ook] [[Perl (Programmiersprache)|Perl]] module at [[CPAN]] (en)&lt;br /&gt;
* [http://search.cpan.org/perldoc?Language::Ook Language::Ook] Perl Interpreter and converter from Ook! (en)&lt;br /&gt;
* [http://extensions.services.openoffice.org/project/ookscriptprovider OpenOffice.org-Erweiterung für Ook!-Makros]&lt;br /&gt;
* [https://www.splitbrain.org/_static/ook/ – Brainfuck/Ook! Obfuscation/Encodin (Monkey Business)]&lt;br /&gt;
* [http://ook.heroku.com/ ookie Ook! interpreter and command] packaged in a [https://rubygems.org/gems/ookie Ruby gem] (en)&lt;br /&gt;
* [https://www.netteleuthe.de/gc/ook/ Online Ook! Interpreter]&lt;br /&gt;
&lt;br /&gt;
{{Gesprochene Version&lt;br /&gt;
|datei=De-Ook!-article.ogg&lt;br /&gt;
|länge=03:21 min&lt;br /&gt;
|größe=3,48 MB&lt;br /&gt;
|version=82649131&lt;br /&gt;
|exzellent=nein&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Esoterische Programmiersprache]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Nicowa</name></author>
	</entry>
</feed>