Object disoriented

Object disoriented is an object-oriented programming language. This means that objects are the only kind of data it manipulates. It also belongs to the class of functional programming languages, especially "dysfunctional programming languages" alongside 0x29A.

Each object has two member data objects,  and. In line with the best data encapsulation principles, other objects cannot read these member objects. As such, the only way to read these objects is to interface with the object's single member function. This prevents incorrect use of these member objects.

Since each object's interface is a single function that takes an object as an argument and returns another object, all object are interchangeable, and thus virtual. This encourages polymorphism and inheritance.

Cat program
e This is CAT. e This class is an infinite loop that inputs a bit and outputs it on each iteration. dcatloop. oi  fsz rz zz e This class is the program's entry point; it simply runs the catloop class's function. dmain. flcatloop.z  rz zz

Hello, world!
e This hello world program implements a 88 bits stack. e The stack represents the 11 char ascii data. e This function pushes a 0 onto a stack. dp0. cn    cas rz  pz   p zz e  This function pushes a 1 onto a stack. dp1. cn    cas r n fpz rz zz  pz   p zz e  This function creates a hello world stack. dmakehelloworld. flp0.a flp1.a flp1.a flp0.a flp1.a flp0.a flp0.a flp0.a    e   h. flp0.a flp1.a flp1.a flp0.a flp0.a flp1.a flp0.a flp1.a    e   e. flp0.a flp1.a flp1.a flp0.a flp1.a flp1.a flp0.a flp0.a    e   l. flp0.a flp1.a flp1.a flp0.a flp1.a flp1.a flp0.a flp0.a    e   l. flp0.a flp1.a flp1.a flp0.a flp1.a flp1.a flp1.a flp1.a    e   o. flp0.a flp0.a flp1.a flp0.a flp0.a flp0.a flp0.a flp0.a    e space. flp0.a flp1.a flp1.a flp1.a flp0.a flp1.a flp1.a flp1.a    e   w. flp0.a flp1.a flp1.a flp0.a flp1.a flp1.a flp1.a flp1.a    e   o. flp0.a flp1.a flp1.a flp0.a flp1.a flp1.a flp0.a flp0.a    e   l. flp0.a flp1.a flp1.a flp1.a flp0.a flp0.a flp1.a flp0.a    e   r. flp0.a flp1.a flp1.a flp0.a flp0.a flp1.a flp0.a flp0.a    e   d. ra zz e This function takes a function and returns a function that repeats it 8 times. dmakeloop8. rn    fap fap fap fap fap fap fap fap rz  pz zz e  This function takes a function and returns a function that repeats it 11 times. dmakeloop11. rn    fap fap fap fap fap fap fap fap fap fap fap rz  pz zz e  This function pops a bit off the input (passed by reference) and outputs it. dprintstackbit. cfpza oa  rz zz e  This function coordinates all the previous functions together (and is the entry point). dmain. c flmakehelloworld.z a  c flmakeloop11. flmakeloop8. lprintstackbit. b  fba rz zz

Delayed cat
e This program will store all the data input until it reads a char >128 into a string, then output it. dmain.cia cnfazobrzpap cncatcbactbrb snfpzrzzzt fatcftzt cnfazobrzpip cnfazobrzpip cnfazobrzpip cnfazobrzpip cnfazobrzpip cnfazobrzpip cnfazobrzpip ftprzzz

Minifuck interpreter
e Commands:              @: nop; a: array[n]^=1;          b: n++; c: n--;                  d: print_bit(array[n]); e: array[n]=get_bit;   f: while(array[n]){ g: }, end of program . dmain. cfn iiiii c ncatcbactbrb ncatcbactbrb ii i t   c fffnrnrncncatcbactbrbbptfatrftzappzzz fnfazrfaz fnrfaz tz z    fffnrnrncncatcbactbrbbptfatrftzappzzz fnfazrfaz fnfazrfaz tz z    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz      z      n        cn cfap a rfn c fnrfaz pz t         c fnrfaz tz a          c fffnrnrncncatcbactbrbbptfatrftzappzzz a z n fpz rz zz a          c ncatcbactbrb a fnfazrfaz tz t          c ncatcbactbrb t fnfazrfaz pz b          rb        zz a pz p        rz      zz    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz      n        cn cfap a rfn c fnrfaz pz t         c fnrfaz tz a          c fnfazrfaz tz t          c fnfazrfaz pz b          c ncatcbactbrb ab b          c ncatcbactbrb tb b          rb        zz a pz p        rz      zz      n        cn cfap a rfn c fnfazrfaz pz t         c fnrfaz tz a          c fnfazrfaz tz t          c fnrfaz pz b          c ncatcbactbrb ab b          c ncatcbactbrb bt b          rb        zz a pz p        rz      zz    fffnrnrncncatcbactbrbbptfatrftzappzzz fnfazrfaz fnfazrfaz tz z    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz      n        cn cfap a rfn c fnrfaz pz t         c fnrfaz tz a          oa          rp        zz a pz p        rz      zz      n        cn cfap a rfn c fnrfaz pz t         c ncatcbactbrb i fnfazrfaz tz t          c ncatcbactbrb t fnfazrfaz pz b          rb        zz a pz p        rz      zz    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz       n        cn          cfap a          rfn c fnrfaz pz t           c fnrfaz tz a            c fffnrnrncncatcbactbrbbptfatrftzappzzz a b z a            rfap zb         a          pb        p        rb      zs      z    a    fap c fffnrnrncncatcbactbrbbptfatrftzappzzz fnfazrfaz fnrfaz tz z   fffnrnrncncatcbactbrbbptfatrftzappzzz fnfazrfaz fnfazrfaz tz z    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz ss    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz ss    fffnrnrncncatcbactbrbbptfatrftzappzzz fnfazrfaz fnfazrfaz tz z    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz ss    fffnrnrncncatcbactbrbbptfatrftzappzzz fnrfaz tz snrpzz b    rfbp zz a fa ncatcbactbrb zz  rz zz

Comments
Since there's no looping statement, recursion must be used. For this reason, it is recommended to implement at least some simple recursion optimisations, since otherwise long loops would generate more data on each iteration, eventually overflowing the implementation's stack.

The language can be proven turing complete by remapping Unlambda programs as follows: