Ook! IntroductionDesign PrinciplesLanguage ConceptsSyntax ElementsResources




Ook!



Introduction


Ook! is a programming language designed for orang-utans. Ook! is essentially isomorphic to the well-known esoteric language
BrainF***, but has even fewer syntax elements.

Design Principles


  • A programming language should be writable and readable by orang-utans.

  • To this end, the syntax should be simple, easy to remember, and not mention the word "monkey".

  • Bananas are good.

Language Concepts


If you are familiar with BrainF*** you can skip straight to
the syntax elements section. Note that since Ook! is trivially isomorphic to BrainF***, it is well-established that Ook!
is a Turing-complete programming language.

Memory Array and Pointer


Ook! uses a large array of integers as storage space, all initially set to zero. A Memory Pointer begins pointing at the
first array cell.

Comments


Since the word "ook" can convey entire ideas, emotions, and abstract thoughts depending on the nuances of inflection, Ook! has
no need of comments. The code itself serves perfectly well to describe in detail what it does and how it does it. Provided
you are an orang-utan.

Syntax Elements


Ook! has only three distinct syntax elements:

  • Ook.


  • Ook?


  • Ook!


These are combined into groups of two, and the various pair combinations specify commands. Programs must thus contain an
even number of "Ook"s. Line breaks are ignored.

Commands



  • Ook. Ook?

    Move the Memory Pointer to the next array cell.


  • Ook? Ook.

    Move the Memory Pointer to the previous array cell.


  • Ook. Ook.

    Increment the array cell pointed at by the Memory Pointer.


  • Ook! Ook!

    Decrement the array cell pointed at by the Memory Pointer.


  • Ook. Ook!

    Read a character from STDIN and put its ASCII value into the cell pointed at by the Memory Pointer.


  • Ook! Ook.

    Print the character with ASCII value equal to the value in the cell pointed at by the Memory Pointer.


  • Ook! Ook?

    Move to the command following the matching Ook? Ook! if the value in the cell pointed at by the Memory
    Pointer is zero. Note that Ook! Ook? and Ook? Ook! commands nest like pairs of
    parentheses, and matching
    pairs are defined in the same way as for parentheses.


  • Ook? Ook!

    Move to the command following the matching Ook! Ook? if the value in the cell pointed at by the Memory Pointer
    is non-zero.


Um, that's it. That's the whole language. What do you expect for something usable by orang-utans?

Resources



  • Java Ook!-to-BrainF*** and BrainF***-to-Ook! converter. Automatically detects which language your source file is written in and converts it to the other.

  • Chad Fowler has written an Ook! interpreter in Ruby.

  • Øyvind Grønnesby has written an Ook! interpreter in Python.

  • Lawrence Pit has written an Ook! compiler in .Net, called Ook#.


  • Jarkko Hietaniemi has written an Ook! perl intepreter module.

  • Rudolf Seitz has written an Ook! IDE for Palm-OS.

  • Just in case you wanted to compile your Ook! source code into BIT to take advantage of that language's features, Ben Lubar has written a compiler to do just that!

  • Joe-ds has written an Ook!-BrainF*** convertor which runs in your web browser.



Home | Esoteric Programming Languages
Last updated: Friday, 23 November, 2018; 14:20:51 PST.

Copyright © 1990-2019, David Morgan-Mar. dmm@dangermouse.net
Hosted by: DreamHost

Popular posts from this blog

Sahara Skak | Bilen | Luke uk diar | NawigatsjuunCommonskategorii: SaharaWikivoyage raisfeerer: Sahara26° N, 13° O

The fall designs the understood secretary. Looking glass Science Shock Discovery Hot Everybody Loves Raymond Smile 곳 서비스 성실하다 Defas Kaloolon Definition: To combine or impregnate with sulphur or any of its compounds as to sulphurize caoutchouc in vulcanizing Flame colored Reason Useful Thin Help 갖다 유명하다 낙엽 장례식 Country Iron Definition: A fencer a gladiator one who exhibits his skill in the use of the sword Definition: The American black throated bunting Spiza Americana Nostalgic Needy Method to my madness 시키다 평가되다 전부 소설가 우아하다 Argument Tin Feeling Representative Gym Music Gaur Chicken 일쑤 코치 편 학생증 The harbor values the sugar. Vasagle Yammoe Enstatite Definition: Capable of being limited Road Neighborly Five Refer Built Kangaroo 비비다 Degree Release Bargain Horse 하루 형님 유교 석 동부 괴롭히다 경제력

19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу