esoteric programming languages - an introduction to ... · introduction brainfuck intercal befunge...

273
Esoteric Programming Languages blinry 17. Esoterischprogrammiernacht

Upload: hoangkhue

Post on 12-Aug-2018

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Esoteric Programming Languages

blinry

17. Esoterischprogrammiernacht

Page 2: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Introduction

“esoteric” from Greek esoterikos, “belonging to an inner circle”

Esoteric Programming Languagesproof-of-conceptartistic expressionchallenge (for the designer and/or user)joke

This presentation: Five Turing-complete languages

Page 3: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Introduction

“esoteric” from Greek esoterikos, “belonging to an inner circle”

Esoteric Programming Languagesproof-of-conceptartistic expressionchallenge (for the designer and/or user)joke

This presentation: Five Turing-complete languages

Page 4: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Introduction

“esoteric” from Greek esoterikos, “belonging to an inner circle”

Esoteric Programming Languagesproof-of-conceptartistic expressionchallenge (for the designer and/or user)joke

This presentation: Five Turing-complete languages

Page 5: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

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

Page 6: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Brainfuck

Designed by Urban Müller in 1993Motivation: Small compiler (296 bytes)

Minimalist syntax, only eight commands:> < + - , . [ ]

“brain fuck” = hard or complicated thing

Page 7: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Brainfuck

Designed by Urban Müller in 1993Motivation: Small compiler (296 bytes)Minimalist syntax, only eight commands:> < + - , . [ ]

“brain fuck” = hard or complicated thing

Page 8: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Brainfuck

Designed by Urban Müller in 1993Motivation: Small compiler (296 bytes)Minimalist syntax, only eight commands:> < + - , . [ ]

“brain fuck” = hard or complicated thing

Page 9: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 10: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 11: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 12: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 13: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 14: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 15: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 16: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++.

Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 17: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f

Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 18: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 19: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 20: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 21: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 22: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 23: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 24: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 25: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 26: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 27: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 28: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h

Output: 01101000

Page 29: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >>>,-----.<<<++++++++++. Input: f Output: a←↩

1 +++++[->+<]

1 -[>,[<<[-<]++[->+]->-]<<<<2 <<<<<+[-<++++++++[->++++++3 <]>.[-]>+]-]

Input: h Output: 01101000

Page 30: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 0 0 . . .

Inputhello

Output

0110100001100101011011000110110001101111

Page 31: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Inputhello

Output

0110100001100101011011000110110001101111

Page 32: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Inputhello

Output

0110100001100101011011000110110001101111

Page 33: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Inputhello

Output

0110100001100101011011000110110001101111

Page 34: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 35: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 36: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 37: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 38: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 39: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 40: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 41: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 2 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 42: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 2 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 43: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 44: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 45: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 0 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 46: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 0 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 47: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 48: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 104 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 49: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 50: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 51: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 52: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 53: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 54: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 55: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 56: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 57: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 58: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 59: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 2 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 60: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 2 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 61: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 62: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 63: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 64: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 65: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 1 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 66: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 67: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 68: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 0 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 69: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 0 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 70: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 71: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 103 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 72: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 102 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 73: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 1 0 255 102 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 74: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 1 1 0 1 0 0 0 255 0 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 75: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 1 1 0 1 0 0 0 255 0 . . .

Input

h

ello

Output

0110100001100101011011000110110001101111

Page 76: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Input

h

ello

Output01101000

01100101011011000110110001101111

Page 77: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Input

h

ello

Output01101000

01100101011011000110110001101111

Page 78: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Input

h

ello

Output01101000

01100101011011000110110001101111

Page 79: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ASCII to binary

1 -2 [3 >,4 [5 <<6 [-<]7 +8 +[->+]-9 >-10 ]11 <<<<<<<<<12 +[-13 <++++++++14 [->++++++<]>.15 [-]16 >17 +]-18 ]

Tape. . . 0 0 0 0 0 0 0 0 255 0 . . .

Input

hello

Output0110100001100101011011000110110001101111

Page 80: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Best-known esoteric programming language

Many implementations, like AwibSmallest current interpreter: 98 bytes!Someone wrote a text adventure:

1 >+ >+ >+ >+ >+ >+ > > > >++++++++++[ >+ >+++ >+++++ >+++++++ >++++++++++ < <2 <<<-]>..>++>>.>+++++.+++++.-------------.+++++++++++..++++++3 +++++++.<<<.>>++++++++++++++.>------------------------.+++++4 +++++.--.+++++.-------.<<<.>>-----.>+++++++++++++++.--------5 ---------.+++++++++++++.<<<.>>+++++.>----------.---.<<<.>>++6 +.>++++++++++.+++.------.--------.<<<<.>>-----..............7 ...............<<..>>>-------.++++++++.-----------.+++++++++8 ++++. - - - - - - - - -.+++++++++++++++. < <+++++++++++++. <. > > -. > - -.++.9 ---------------.<<<<.>>>------------.>++++++++++.-.++++++.--10 ---------.+++++.---------.+++++++++.++++++.<<.<.>>++++++++++

Page 81: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Best-known esoteric programming languageMany implementations, like Awib

Smallest current interpreter: 98 bytes!Someone wrote a text adventure:

1 >+ >+ >+ >+ >+ >+ > > > >++++++++++[ >+ >+++ >+++++ >+++++++ >++++++++++ < <2 <<<-]>..>++>>.>+++++.+++++.-------------.+++++++++++..++++++3 +++++++.<<<.>>++++++++++++++.>------------------------.+++++4 +++++.--.+++++.-------.<<<.>>-----.>+++++++++++++++.--------5 ---------.+++++++++++++.<<<.>>+++++.>----------.---.<<<.>>++6 +.>++++++++++.+++.------.--------.<<<<.>>-----..............7 ...............<<..>>>-------.++++++++.-----------.+++++++++8 ++++. - - - - - - - - -.+++++++++++++++. < <+++++++++++++. <. > > -. > - -.++.9 ---------------.<<<<.>>>------------.>++++++++++.-.++++++.--10 ---------.+++++.---------.+++++++++.++++++.<<.<.>>++++++++++

Page 82: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Best-known esoteric programming languageMany implementations, like AwibSmallest current interpreter: 98 bytes!

Someone wrote a text adventure:

1 >+ >+ >+ >+ >+ >+ > > > >++++++++++[ >+ >+++ >+++++ >+++++++ >++++++++++ < <2 <<<-]>..>++>>.>+++++.+++++.-------------.+++++++++++..++++++3 +++++++.<<<.>>++++++++++++++.>------------------------.+++++4 +++++.--.+++++.-------.<<<.>>-----.>+++++++++++++++.--------5 ---------.+++++++++++++.<<<.>>+++++.>----------.---.<<<.>>++6 +.>++++++++++.+++.------.--------.<<<<.>>-----..............7 ...............<<..>>>-------.++++++++.-----------.+++++++++8 ++++. - - - - - - - - -.+++++++++++++++. < <+++++++++++++. <. > > -. > - -.++.9 ---------------.<<<<.>>>------------.>++++++++++.-.++++++.--10 ---------.+++++.---------.+++++++++.++++++.<<.<.>>++++++++++

Page 83: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Best-known esoteric programming languageMany implementations, like AwibSmallest current interpreter: 98 bytes!Someone wrote a text adventure:

1 >+ >+ >+ >+ >+ >+ > > > >++++++++++[ >+ >+++ >+++++ >+++++++ >++++++++++ < <2 <<<-]>..>++>>.>+++++.+++++.-------------.+++++++++++..++++++3 +++++++.<<<.>>++++++++++++++.>------------------------.+++++4 +++++.--.+++++.-------.<<<.>>-----.>+++++++++++++++.--------5 ---------.+++++++++++++.<<<.>>+++++.>----------.---.<<<.>>++6 +.>++++++++++.+++.------.--------.<<<<.>>-----..............7 ...............<<..>>>-------.++++++++.-----------.+++++++++8 ++++. - - - - - - - - -.+++++++++++++++. < <+++++++++++++. <. > > -. > - -.++.9 ---------------.<<<<.>>>------------.>++++++++++.-.++++++.--10 ---------.+++++.---------.+++++++++.++++++.<<.<.>>++++++++++

Page 84: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Best-known esoteric programming languageMany implementations, like AwibSmallest current interpreter: 98 bytes!Someone wrote a text adventure:

1 >+ >+ >+ >+ >+ >+ > > > >++++++++++[ >+ >+++ >+++++ >+++++++ >++++++++++ < <2 <<<-]>..>++>>.>+++++.+++++.-------------.+++++++++++..++++++3 +++++++.<<<.>>++++++++++++++.>------------------------.+++++4 +++++.--.+++++.-------.<<<.>>-----.>+++++++++++++++.--------5 ---------.+++++++++++++.<<<.>>+++++.>----------.---.<<<.>>++6 +.>++++++++++.+++.------.--------.<<<<.>>-----..............7 ...............<<..>>>-------.++++++++.-----------.+++++++++8 ++++. - - - - - - - - -.+++++++++++++++. < <+++++++++++++. <. > > -. > - -.++.9 ---------------.<<<<.>>>------------.>++++++++++.-.++++++.--10 ---------.+++++.---------.+++++++++.++++++.<<.<.>>++++++++++

Page 85: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

At least 200 variants, including:

DoubleFuck (two tapes)Boolfuck (binary cells)Brainfork (multithreading via Y)Ook! (for orangutans)

Page 86: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

At least 200 variants, including:

DoubleFuck (two tapes)

Boolfuck (binary cells)Brainfork (multithreading via Y)Ook! (for orangutans)

Page 87: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

At least 200 variants, including:

DoubleFuck (two tapes)Boolfuck (binary cells)

Brainfork (multithreading via Y)Ook! (for orangutans)

Page 88: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

At least 200 variants, including:

DoubleFuck (two tapes)Boolfuck (binary cells)Brainfork (multithreading via Y)

Ook! (for orangutans)

Page 89: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

At least 200 variants, including:

DoubleFuck (two tapes)Boolfuck (binary cells)Brainfork (multithreading via Y)Ook! (for orangutans)

Page 90: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

INTERCAL

Created in 1972 by Donald R. Woods and James M. Lyon

Motivation: Be different than FORTRAN or COBOLWeird names, operators and properties“Compiler Language With No Pronounceable Acronym”Fun manual!

Page 91: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

INTERCAL

Created in 1972 by Donald R. Woods and James M. LyonMotivation: Be different than FORTRAN or COBOL

Weird names, operators and properties“Compiler Language With No Pronounceable Acronym”Fun manual!

Page 92: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

INTERCAL

Created in 1972 by Donald R. Woods and James M. LyonMotivation: Be different than FORTRAN or COBOLWeird names, operators and properties

“Compiler Language With No Pronounceable Acronym”Fun manual!

Page 93: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

INTERCAL

Created in 1972 by Donald R. Woods and James M. LyonMotivation: Be different than FORTRAN or COBOLWeird names, operators and properties“Compiler Language With No Pronounceable Acronym”

Fun manual!

Page 94: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

INTERCAL

Created in 1972 by Donald R. Woods and James M. LyonMotivation: Be different than FORTRAN or COBOLWeird names, operators and properties“Compiler Language With No Pronounceable Acronym”Fun manual!

Page 95: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Manual

“Under no circumstances confuse the mesh with the interleave operator, exceptunder confusing circumstances!”

“Definition of array dimensions will be discussed later in greater detail, sincediscussing it in less detail would be difficult.”“exp represents any expression (except colloquial and facial expressions)”“Precedence of operators is as follows: (The remainder of this page intentionallyleft blank.)”“This footnote intentionally unreferenced.”

Page 96: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Manual

“Under no circumstances confuse the mesh with the interleave operator, exceptunder confusing circumstances!”“Definition of array dimensions will be discussed later in greater detail, sincediscussing it in less detail would be difficult.”

“exp represents any expression (except colloquial and facial expressions)”“Precedence of operators is as follows: (The remainder of this page intentionallyleft blank.)”“This footnote intentionally unreferenced.”

Page 97: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Manual

“Under no circumstances confuse the mesh with the interleave operator, exceptunder confusing circumstances!”“Definition of array dimensions will be discussed later in greater detail, sincediscussing it in less detail would be difficult.”“exp represents any expression (except colloquial and facial expressions)”

“Precedence of operators is as follows: (The remainder of this page intentionallyleft blank.)”“This footnote intentionally unreferenced.”

Page 98: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Manual

“Under no circumstances confuse the mesh with the interleave operator, exceptunder confusing circumstances!”“Definition of array dimensions will be discussed later in greater detail, sincediscussing it in less detail would be difficult.”“exp represents any expression (except colloquial and facial expressions)”“Precedence of operators is as follows: (The remainder of this page intentionallyleft blank.)”

“This footnote intentionally unreferenced.”

Page 99: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Manual

“Under no circumstances confuse the mesh with the interleave operator, exceptunder confusing circumstances!”“Definition of array dimensions will be discussed later in greater detail, sincediscussing it in less detail would be difficult.”“exp represents any expression (except colloquial and facial expressions)”“Precedence of operators is as follows: (The remainder of this page intentionallyleft blank.)”“This footnote intentionally unreferenced.”

Page 100: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 =:1 =:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 101: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 =:1 =:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 102: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110

:1 =:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 103: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110

:1 =:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 104: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110

:1 =:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 105: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110:1 = 110110 $ 000000

:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 106: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110:1 = 101000101000

:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 107: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110:1 = 101000101000

:2 =

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 108: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110:1 = 101000101000:2 = ...111111 $ ...000001

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 109: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110:1 = 101000101000:2 = 101010101011

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 110: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 110110:1 = 101000101000:2 = 101010101011

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 111: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 1 1 0 1 1 00:1 = 101000101000:2 = 101010101011

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 112: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 1 1 0 1 1 00:1 = 101000101000:2 = 101010101011

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 113: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 1 1 0 1 1 00:1 = 101000101000:2 = 101010101011

OutputCVIII

CCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 114: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 1 1 0 1 1 00:1 = 101000101000:2 = 101010101011

OutputCVIIICCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 115: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Multiplying by two

1 PLEASE WRITE IN .12

3 DO COME FROM (42)4

5 DO :1 <- .1$#06 DO :2 <- #65535$#17 DO .1 <- :1˜:28

9 (42) DO READ OUT .110

11 PLEASE GIVE UP

InputFIVE FOUR

.1 = 1 1 0 1 1 00:1 = 101000101000:2 = 101010101011

OutputCVIIICCXVICDXXXII. . .ICL275I: DON’T BYTE OFF MORE THANYOU CAN CHEW

Page 116: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Eric Raymond released C-INTERCAL in 1990

“Large”, active communityDonald Knuth wrote a bug report in 2010Google released a style guide!

Page 117: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Eric Raymond released C-INTERCAL in 1990“Large”, active community

Donald Knuth wrote a bug report in 2010Google released a style guide!

Page 118: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Eric Raymond released C-INTERCAL in 1990“Large”, active communityDonald Knuth wrote a bug report in 2010

Google released a style guide!

Page 119: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Eric Raymond released C-INTERCAL in 1990“Large”, active communityDonald Knuth wrote a bug report in 2010Google released a style guide!

Page 120: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Eric Raymond released C-INTERCAL in 1990“Large”, active communityDonald Knuth wrote a bug report in 2010Google released a style guide!

Page 121: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

TriINTERCAL (operates on ternary values)

Threaded INTERCAL (handles COME FROM statements referencing the same line)Backtracking INTERCAL (introduces the MAYBE label)

Page 122: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

TriINTERCAL (operates on ternary values)Threaded INTERCAL (handles COME FROM statements referencing the same line)

Backtracking INTERCAL (introduces the MAYBE label)

Page 123: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

TriINTERCAL (operates on ternary values)Threaded INTERCAL (handles COME FROM statements referencing the same line)Backtracking INTERCAL (introduces the MAYBE label)

Page 124: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Befunge

Created in 1993 by Chris Pressey

Motivation: be difficult to parseFirst two-dimensional language“Befunge” mistyping of “before”

Page 125: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Befunge

Created in 1993 by Chris PresseyMotivation: be difficult to parse

First two-dimensional language“Befunge” mistyping of “before”

Page 126: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Befunge

Created in 1993 by Chris PresseyMotivation: be difficult to parseFirst two-dimensional language

“Befunge” mistyping of “before”

Page 127: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Befunge

Created in 1993 by Chris PresseyMotivation: be difficult to parseFirst two-dimensional language“Befunge” mistyping of “before”

Page 128: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 129: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 130: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 131: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 132: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 133: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 134: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 135: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 136: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 137: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 138: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 139: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 140: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 141: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 142: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 143: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 144: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 145: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 146: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 147: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 148: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 149: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 150: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 151: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 152: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@

Output: 42

Page 153: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Examples

1 >v2 ^<

1 v>0 v2 >?<.<3 >1 ^

Output: 1011110010. . .

1 666*+.@ Output: 42

Page 154: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)(empty)

Inputhello, world!

Output

uryyb, jbeyq!

Page 155: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)(empty)

Inputhello, world!

Output

uryyb, jbeyq!

Page 156: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 157: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 158: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 159: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104 96

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 160: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104 96

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 161: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 1

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 162: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 163: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 164: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 165: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 166: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 167: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104 122

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 168: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104 122

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 169: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 170: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 171: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 172: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 173: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 174: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104 109

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 175: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 104 109

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 176: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 177: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 178: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 0

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 179: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 180: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 181: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)104 9

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 182: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)113

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 183: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)113 4

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 184: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)117

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 185: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)117

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 186: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)117

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 187: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)117

Input

h

ello, world!

Output

uryyb, jbeyq!

Page 188: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)(empty)

Input

h

ello, world!

Outputu

ryyb, jbeyq!

Page 189: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: ROT13

1 >˜:"‘"‘!v2 ,v _:"z"‘v3 ^ _:"m"‘v4 ^ -4-9<5 | <6 ^ +4+9<7 ^ _:"M"‘^8 ^ _:"Z"‘^9 >:"@"‘!^

Stack (bottom → top)(empty)

Input

hello, world!

Outputuryyb, jbeyq!

Page 190: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Important platform: Befunge Mailing List

Many actively maintained interpreters and compilers, like befunjitIRC client with 10,000 characters

Page 191: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Important platform: Befunge Mailing ListMany actively maintained interpreters and compilers, like befunjit

IRC client with 10,000 characters

Page 192: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Important platform: Befunge Mailing ListMany actively maintained interpreters and compilers, like befunjitIRC client with 10,000 characters

Page 193: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

Other members of the Funge-98 family: Unefunge and Trefunge

Weird (only one instruction)PATH (1D source code, 2D playfield)

Page 194: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

Other members of the Funge-98 family: Unefunge and TrefungeWeird (only one instruction)

PATH (1D source code, 2D playfield)

Page 195: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Variants

Other members of the Funge-98 family: Unefunge and TrefungeWeird (only one instruction)PATH (1D source code, 2D playfield)

Page 196: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Malbolge

Created in 1998 by Ben Olmstead

Motivation: be incomprehensible andhard to useTook two years to write the firstnontrivial programMalebolge is the eighth circle of Hell inDante’s Inferno

Page 197: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Malbolge

Created in 1998 by Ben OlmsteadMotivation: be incomprehensible andhard to use

Took two years to write the firstnontrivial programMalebolge is the eighth circle of Hell inDante’s Inferno

Page 198: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Malbolge

Created in 1998 by Ben OlmsteadMotivation: be incomprehensible andhard to useTook two years to write the firstnontrivial program

Malebolge is the eighth circle of Hell inDante’s Inferno

Page 199: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Malbolge

Created in 1998 by Ben OlmsteadMotivation: be incomprehensible andhard to useTook two years to write the firstnontrivial programMalebolge is the eighth circle of Hell inDante’s Inferno

Page 200: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machine

CPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 201: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D

310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 202: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 203: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 204: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94

Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 205: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryption

If we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 206: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instruction

Subtract 33Apply a different substitution encryptionIncrement C and D

Page 207: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33

Apply a different substitution encryptionIncrement C and D

Page 208: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryption

Increment C and D

Page 209: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Description

Simple virtual machineCPU with three registers A, C , and D310 memory cells, 10 trits each

ExecutionFor each instruction:

Subtract 33, add C , mod with 94Apply a substitution encryptionIf we now have one of j i * p / < v o, execute that instructionSubtract 33Apply a different substitution encryptionIncrement C and D

Page 210: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Hello world

1 (=<`$9]7<5 YXz7wT .3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$X2 mrkpohm -kNi;gsedcba `_^]\[ ZYXWVUTSRQPONMLKJIHGFE3 DCBA@ ? >= <;:9876543s+O<oLm

OutputHEllO WORld

Page 211: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Hello world

1 (=<`$9]7<5 YXz7wT .3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$X2 mrkpohm -kNi;gsedcba `_^]\[ ZYXWVUTSRQPONMLKJIHGFE3 DCBA@ ? >= <;:9876543s+O<oLm

OutputHEllO WORld

Page 212: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Cryptanalysis by Louis Scheffer around 2005

Appearance in Elementary S01E10:

Page 213: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

Cryptanalysis by Louis Scheffer around 2005Appearance in Elementary S01E10:

Page 214: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Shakespeare

Created in 2001 by Karl Hasselström and Jon Åslund

Motivation: homework in their Syntax Analysis classThemed language“combines the expressiveness of BASIC with the user-friendliness of assemblylanguage”

Page 215: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Shakespeare

Created in 2001 by Karl Hasselström and Jon ÅslundMotivation: homework in their Syntax Analysis class

Themed language“combines the expressiveness of BASIC with the user-friendliness of assemblylanguage”

Page 216: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Shakespeare

Created in 2001 by Karl Hasselström and Jon ÅslundMotivation: homework in their Syntax Analysis classThemed language

“combines the expressiveness of BASIC with the user-friendliness of assemblylanguage”

Page 217: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Shakespeare

Created in 2001 by Karl Hasselström and Jon ÅslundMotivation: homework in their Syntax Analysis classThemed language“combines the expressiveness of BASIC with the user-friendliness of assemblylanguage”

Page 218: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

1 A drama by the numbers.23 Juliet, a young Italian lady.4 Romeo, the rich Count.5 Mercutio, his spacy rival.

Variables

JulietRomeoMercutio

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 219: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

1 A drama by the numbers.23 Juliet, a young Italian lady.4 Romeo, the rich Count.5 Mercutio, his spacy rival.

Variables

JulietRomeoMercutio

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 220: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

1 A drama by the numbers.23 Juliet, a young Italian lady.4 Romeo, the rich Count.5 Mercutio, his spacy rival.

VariablesJuliet 0 off

RomeoMercutio

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 221: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

1 A drama by the numbers.23 Juliet, a young Italian lady.4 Romeo, the rich Count.5 Mercutio, his spacy rival.

VariablesJuliet 0 offRomeo 0 off

Mercutio

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 222: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

1 A drama by the numbers.23 Juliet, a young Italian lady.4 Romeo, the rich Count.5 Mercutio, his spacy rival.

VariablesJuliet 0 offRomeo 0 offMercutio 0 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 223: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 0 offRomeo 0 offMercutio 0 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 224: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 0 offRomeo 0 offMercutio 0 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 225: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 0 onRomeo 0 offMercutio 0 on

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 226: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 2 onRomeo 0 offMercutio 0 on

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 227: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 offMercutio 0 on

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 228: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 offMercutio -32 on

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 229: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 offMercutio 32 on

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 230: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 offMercutio 32 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 231: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 onMercutio 32 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 232: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo -1 onMercutio 32 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 233: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 onMercutio 32 off

Output

11 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 234: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 onRomeo 0 onMercutio 32 off

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 235: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 (0) onRomeo 0 onMercutio 32 off

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 236: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

6 Act I: The Act where it all happens.7 Scene I: Juliet insults everyone.89 [Enter Juliet and Mercutio]1011 Mercutio: You charming angel! You are as12 beautiful as a flower!13 Juliet: You are a disgusting smelly lying14 rotten dirty pig! You are as small as15 the difference between nothing and16 thyself!1718 [Exit Mercutio]19 [Enter Romeo]2021 Juliet: You devil! You are nothing!22 Romeo: Open your heart! Remember me!2324 [Exit Juliet]

VariablesJuliet 1 (0) offRomeo 0 onMercutio 32 off

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 237: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 0 onMercutio 32 off

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 238: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 0 onMercutio 32 on

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 239: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 0 onMercutio 32 on

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 240: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 0 onMercutio 32 on

Output1

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 241: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 0 onMercutio 32 on

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 242: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 1 onMercutio 32 on

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 243: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 1 (1) onMercutio 32 on

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 244: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (0) offRomeo 1 (1) onMercutio 32 off

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 245: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (0) offRomeo 1 (1) onMercutio 32 off

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 246: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (0) onRomeo 1 (1) onMercutio 32 off

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 247: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (0) onRomeo 1 (1) onMercutio 32 off

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 248: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 0 onRomeo 1 (1) onMercutio 32 off

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 249: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 onRomeo 1 (1) onMercutio 32 off

Output1␣

1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 250: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 onRomeo 1 (1) onMercutio 32 off

Output1␣1

2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 251: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (1) onRomeo 1 (1) onMercutio 32 off

Output1␣1

2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 252: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (1) onRomeo 1 onMercutio 32 off

Output1␣1

2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 253: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (1) offRomeo 1 onMercutio 32 off

Output1␣1

2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 254: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

39 Scene III: Can I have your number?4041 [Enter Juliet]4243 Juliet: You are me!4445 Romeo: Recall our eternal love! You are as46 happy as the sum of thyself and me. Open47 your heart! Remember me!4849 Juliet: Recall that we all must die.5051 [Exit Juliet]5253 Romeo: We must return to scene II!

VariablesJuliet 1 (1) offRomeo 1 onMercutio 32 off

Output1␣1

2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 255: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 1 (1) offRomeo 1 onMercutio 32 off

Output1␣1

2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 256: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 3524578 offRomeo 32 onMercutio 32 off

Output1 1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811 514229

832040 1346269 2178309 3524578

Page 257: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 3524578 offRomeo 32 onMercutio 32 on

Output1 1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 258: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 3524578 offRomeo 32 onMercutio 32 on

Output1 1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 259: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

26 Scene II: The rival’s encounter.2728 [Enter Mercutio]2930 Romeo: Are you better than me? If not, let31 us proceed to scene IV. Speak your mind!3233 Mercutio: You are as miserable as the sum34 of thyself and a stone wall! Remember35 yourself!3637 [Exit Mercutio]

VariablesJuliet 3524578 offRomeo 32 onMercutio 32 on

Output1 1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 260: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Example: Fibonacci sequence

55 Scene IV: The finale.5657 Mercutio: Are you better than me? You58 bastard.5960 [Exit Mercutio]61 [Enter Juliet]6263 Romeo: You are my pretty rose!6465 Juliet: You coward! You are as bad as66 Mercutio. Recall my final goodbye.6768 [Exit Juliet]6970 Romeo: Am I as cursed as a damned hound?

VariablesJuliet 3524578 offRomeo 32 onMercutio 32 on

Output1 1 2 3 5 8 13 21 34 55 89 144

233 377 610 987 1597 2584 4181

6765 10946 17711 28657 46368

75025 121393 196418 317811

514229 832040 1346269 2178309

3524578

Page 261: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

DeCSS implementation would be protected by free speech laws

Actual Shakespeare performance in 2007:

Page 262: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Significance

DeCSS implementation would be protected by free speech lawsActual Shakespeare performance in 2007:

Page 263: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Other themed lanauges

Chef (recipes)

Taxi (directions for a taxi driver)LOLCODE (IM IN YR LOOP, KTHXBYE)FiM++ (Dear Princess Celestia. . . )

Page 264: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Other themed lanauges

Chef (recipes)Taxi (directions for a taxi driver)

LOLCODE (IM IN YR LOOP, KTHXBYE)FiM++ (Dear Princess Celestia. . . )

Page 265: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Other themed lanauges

Chef (recipes)Taxi (directions for a taxi driver)LOLCODE (IM IN YR LOOP, KTHXBYE)

FiM++ (Dear Princess Celestia. . . )

Page 266: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Other themed lanauges

Chef (recipes)Taxi (directions for a taxi driver)LOLCODE (IM IN YR LOOP, KTHXBYE)FiM++ (Dear Princess Celestia. . . )

Page 267: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

More examples

Piet (abstract paintings)

Aceto (follows a Hilbert curve through the sourcecode)Whitespace (uses only space, tab, and return)/// (the only operation is string substitution)Velato (MIDI, tends to create jazz)

Visit esolangs.org for (many, many) more!

Page 268: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

More examples

Piet (abstract paintings)Aceto (follows a Hilbert curve through the sourcecode)

Whitespace (uses only space, tab, and return)/// (the only operation is string substitution)Velato (MIDI, tends to create jazz)

Visit esolangs.org for (many, many) more!

Page 269: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

More examples

Piet (abstract paintings)Aceto (follows a Hilbert curve through the sourcecode)Whitespace (uses only space, tab, and return)

/// (the only operation is string substitution)Velato (MIDI, tends to create jazz)

Visit esolangs.org for (many, many) more!

Page 270: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

More examples

Piet (abstract paintings)Aceto (follows a Hilbert curve through the sourcecode)Whitespace (uses only space, tab, and return)/// (the only operation is string substitution)

Velato (MIDI, tends to create jazz)

Visit esolangs.org for (many, many) more!

Page 271: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

More examples

Piet (abstract paintings)Aceto (follows a Hilbert curve through the sourcecode)Whitespace (uses only space, tab, and return)/// (the only operation is string substitution)Velato (MIDI, tends to create jazz)

Visit esolangs.org for (many, many) more!

Page 272: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

More examples

Piet (abstract paintings)Aceto (follows a Hilbert curve through the sourcecode)Whitespace (uses only space, tab, and return)/// (the only operation is string substitution)Velato (MIDI, tends to create jazz)

Visit esolangs.org for (many, many) more!

Page 273: Esoteric Programming Languages - An Introduction to ... · Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion Introduction “esoteric”fromGreekesoterikos,“belongingtoaninnercircle”

Introduction Brainfuck INTERCAL Befunge Malbolge Shakespeare Conclusion

Thanks!

[email protected]://morr.cc

@blinry

Slides and references: morr.cc/esolangs/