SlideShare a Scribd company logo
1 of 15
Download to read offline
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 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.
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. 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.   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.
OSDcLang
Now on mobile, err, devices!

More Related Content

Similar to OSDcLang On Mobile Devices (7)

Jenkins Docker
Jenkins DockerJenkins Docker
Jenkins Docker
 
Rubish- A Quixotic Shell
Rubish- A Quixotic ShellRubish- A Quixotic Shell
Rubish- A Quixotic Shell
 
Your code is not a string
Your code is not a stringYour code is not a string
Your code is not a string
 
gonzalo
gonzalogonzalo
gonzalo
 
Data compession
Data compession Data compession
Data compession
 
Static typing and proof in ATS language
Static typing and proof in ATS languageStatic typing and proof in ATS language
Static typing and proof in ATS language
 
Scripting OS X with Applescript, without Applescript
Scripting OS X with Applescript, without ApplescriptScripting OS X with Applescript, without Applescript
Scripting OS X with Applescript, without Applescript
 

More from Jonathan Oxer

More from Jonathan Oxer (12)

Geek My Ride
Geek My RideGeek My Ride
Geek My Ride
 
Debian Package Caching Solutions
Debian Package Caching SolutionsDebian Package Caching Solutions
Debian Package Caching Solutions
 
Software Freedom: Pragmatic Idealism?
Software Freedom: Pragmatic Idealism?Software Freedom: Pragmatic Idealism?
Software Freedom: Pragmatic Idealism?
 
Encrypted password storage
Encrypted password storageEncrypted password storage
Encrypted password storage
 
How to grow your eBusiness and build an online community
How to grow your eBusiness and build an online communityHow to grow your eBusiness and build an online community
How to grow your eBusiness and build an online community
 
Self-Healing Databases
Self-Healing DatabasesSelf-Healing Databases
Self-Healing Databases
 
How To Build A Website And Stay Sane
How To Build A Website And Stay SaneHow To Build A Website And Stay Sane
How To Build A Website And Stay Sane
 
Managing Source Code With Subversion
Managing Source Code With SubversionManaging Source Code With Subversion
Managing Source Code With Subversion
 
Large Scale PHP
Large Scale PHPLarge Scale PHP
Large Scale PHP
 
PHP On Steroids
PHP On SteroidsPHP On Steroids
PHP On Steroids
 
PHP Performance Profiling
PHP Performance ProfilingPHP Performance Profiling
PHP Performance Profiling
 
Compiling kernels the Debian way
Compiling kernels the Debian wayCompiling kernels the Debian way
Compiling kernels the Debian way
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

OSDcLang On Mobile Devices

  • 8. 3 Syntax Elements OSDc. OSDc? OSDc!
  • 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. OSDcLang is Turing complete Trivially isomorphic to BrainF**k
  • 11. OSDc. OSDc? == > OSDc? OSDc. == < OSDc. OSDc. == + OSDc! OSDc! == ­ OSDc. OSDc! == , OSDc! OSDc. == . OSDc! OSDc? == [ OSDc? OSDc! == ]
  • 12.      > == OSDc. OSDc? < == OSDc? OSDc. + == OSDc. OSDc. ­ == OSDc! OSDc! , == OSDc. OSDc! . == OSDc! OSDc. [ == OSDc! OSDc? ] == OSDc? OSDc!
  • 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.
  • 15. OSDcLang Now on mobile, err, devices!