Esoteric Programming Languages

Esoteric Programming Languages

Esoteric Programming Languages blinry 17. Esoterischprogrammiernacht Esoteric Programming Languages proof-of-concept artistic expression challenge (for the designer and/or user) joke This presentation: Five Turing-complete languages Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric” from Greek esoterikos, “belonging to an inner circle” This presentation: Five Turing-complete languages Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric” from Greek esoterikos, “belonging to an inner circle” Esoteric Programming Languages proof-of-concept artistic expression challenge (for the designer and/or user) joke Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric” from Greek esoterikos, “belonging to an inner circle” Esoteric Programming Languages proof-of-concept artistic expression challenge (for the designer and/or user) joke This presentation: Five Turing-complete languages Motivation: Small compiler (296 bytes) Minimalist syntax, only eight commands: > < + - , . [ ] “brain fuck” = hard or complicated thing Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Brainfuck Designed by Urban Müller in 1993 Minimalist syntax, only eight commands: > < + - , . [ ] “brain fuck” = hard or complicated thing Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Brainfuck Designed by Urban Müller in 1993 Motivation: Small compiler (296 bytes) “brain fuck” = hard or complicated thing Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Brainfuck Designed by Urban Müller in 1993 Motivation: Small compiler (296 bytes) Minimalist syntax, only eight commands: > < + - , . [ ] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Brainfuck Designed by Urban Müller in 1993 Motivation: Small compiler (296 bytes) Minimalist syntax, only eight commands: > < + - , . [ ] “brain fuck” = hard or complicated thing Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] Input: h Output: 01101000 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ 3 <]>.[-]>+]-] Output: 01101000 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h 3 <]>.[-]>+]-] Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Examples 1 >>>,-----.<<<++++++++++. Input: f Output: a←- 1 +++++[->+<] 1 -[>,[<<[-<]++[->+]->-]<<<< 2 <<<<<+[-<++++++++[->++++++ Input: h Output: 01101000 3 <]>.[-]>+]-] 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 0 0... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< hello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 255 0... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< hello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 255 0... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< hello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 255 0 ... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< hello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] h 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 255 104 ... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< ello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] h 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 255 104 ... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< ello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] h 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...00000000 255 104... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< ello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] h 0110100001100101011011000110110001101111 Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Example: ASCII to binary 1 - 2 [ 3 >, 4 [ 5 << Tape 6 [-<] ...0000000 0 255 104... 7 + 8 +[->+]- 9 >- Input 10 ] 11 <<<<<<<<< ello 12 +[- 13 <++++++++ Output 14 [->++++++<]>. 15 [-] 16 > 17 +]- 18 ] h 0110100001100101011011000110110001101111

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    273 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us