0
OSDcLang
for mobile
  devices
Beginners
Languages
Low level,
stack based?
Functional,
loosely typed?
Object oriented,
 strictly typed?
Yes!
OSDcLang
 Simple syntax
   Expressive
3 Syntax Elements
      OSDc.
      OSDc?
      OSDc!
8 Commands
* OSDc. OSDc?
Move the Memory Pointer to the next array cell.
* OSDc? OSDc.
Move the Memory Pointer to the prev...
OSDcLang is Turing complete

Trivially isomorphic to BrainF**k
OSDc. OSDc?   ==   >
OSDc? OSDc.   ==   <
OSDc. OSDc.   ==   +
OSDc! OSDc!   ==   ­
OSDc. OSDc!   ==   ,
OSDc! OSDc.   == ...
     >   ==   OSDc. OSDc?
     <   ==   OSDc? OSDc.
     +   ==   OSDc. OSDc.
     ­   ==   OSDc! OSDc!
     ,   ==   OSDc...
So what does it look like?
  Very simple! Print “A”:
OSDc. OSDc.   OSDc. OSDc.    OSDc. OSDc.   OSDc. OSDc.
OSDc. OSDc.   ...
OSDcLang
Now on mobile, err, devices!
OSDcLang On Mobile Devices
Upcoming SlideShare
Loading in...5
×

OSDcLang On Mobile Devices

1,831

Published on

OSDcLang is a joke language I created (read: stole blatantly from BF) for an early OSDC, and it's become something of a meme with talks about it at every conference since. In this lightning talk I demonstrated the use of OSDcLang to communicate with the engine management system of my car.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,831
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "OSDcLang On Mobile Devices"

  1. 1. OSDcLang for mobile devices
  2. 2. Beginners Languages
  3. 3. Low level, stack based?
  4. 4. Functional, loosely typed?
  5. 5. Object oriented, strictly typed?
  6. 6. Yes!
  7. 7. OSDcLang Simple syntax Expressive
  8. 8. 3 Syntax Elements OSDc. OSDc? OSDc!
  9. 9. 8 Commands * OSDc. OSDc? Move the Memory Pointer to the next array cell. * OSDc? OSDc. Move the Memory Pointer to the previous array cell. * OSDc. OSDc. Increment the array cell pointed at by the Memory Pointer. * OSDc! OSDc! Decrement the array cell pointed at by the Memory Pointer. * OSDc. OSDc! Read a character from STDIN and put its ASCII value into the cell at the Memory Pointer. * OSDc! OSDc. Print the character with ASCII value of the cell pointed at by the Memory Pointer. * OSDc! OSDc? Move to the command following the matching OSDc? OSDc! if the value in the cell pointed at by the Memory Pointer is zero. Note that OSDc! OSDc? and OSDc? OSDc! commands nest like pairs of parentheses, and matching pairs are defined in the same way as for parentheses. * OSDc? OSDc! Move to the command following the matching OSDc! OSDc? if the value in the cell pointed at by the Memory Pointer is non-zero.
  10. 10. OSDcLang is Turing complete Trivially isomorphic to BrainF**k
  11. 11. OSDc. OSDc? == > OSDc? OSDc. == < OSDc. OSDc. == + OSDc! OSDc! == ­ OSDc. OSDc! == , OSDc! OSDc. == . OSDc! OSDc? == [ OSDc? OSDc! == ]
  12. 12.      > == OSDc. OSDc? < == OSDc? OSDc. + == OSDc. OSDc. ­ == OSDc! OSDc! , == OSDc. OSDc! . == OSDc! OSDc. [ == OSDc! OSDc? ] == OSDc? OSDc!
  13. 13. So what does it look like? Very simple! Print “A”: OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc.  OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc. OSDc! OSDc.
  14. 14. OSDcLang Now on mobile, err, devices!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×