# Esolangs
`Paddy Lee`
---
What is an esolang
(esoteric programming language)?
----
esoteric(adj.) - very unusual and understood or liked by only a small number of people, especially those with special knowledge:
----
```c
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("I love DSA");
return 0;
}
```
```java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("I love DSA");
}
}
```
```python
printf("I love DSA");
```
----
```
COLOR, WTF?
OMG "R"
VISIBLE "RED FISH"
GTFO
OMG "Y"
VISIBLE "YELLOW FISH"
OMG "G"
OMG "B"
VISIBLE "FISH HAS A FLAVOR"
GTFO
OMGWTF
VISIBLE "FISH IS TRANSPARENT"
OIC
```
----
```
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
```
----
```
('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>
```
---
# LOLCODE

----
## LOLCAT

----
```
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
```
```
HAI
CAN HAS STDIO?
I HAS A NUMBR ITZ 0
IM IN YR LOOP
UP NUMBR!!1
VISIBLE NUMBR
IZ NUMBR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE
```
----
COMMENTS
```
HAI
CAN HAS STDIO?
VISIBLE "U SEE THIS"
BTW VISIBLE "U SEE NOTHING"
OBTW
VISIBLE "U SEE NOTHIN"
VISIBLE "U STIL SEE NOTHIN"
TLDR
VISIBLE "U SEE THIS"
KTHXBYE
```
----
```
I HAS A VAR ITZ 12 BTW VAR = 12
```
----
## variable declaration
```
I HAS A VAR BTW VAR is null and untyped
VAR R "THREE" BTW VAR is now a YARN and equals "THREE"
VAR R 3 BTW VAR is now a NUMBR and equals 3
```
----
## Types of variables
- bool - TROOF(WIN/FAIL)
- string - YARN
- int - NUMBR
- float - NUMBAR
----
## Math
```
SUM OF <x> AN <y> BTW +
DIFF OF <x> AN <y> BTW -
PRODUKT OF <x> AN <y> BTW *
QUOSHUNT OF <x> AN <y> BTW /
MOD OF <x> AN <y> BTW mod
BIGGR OF <x> AN <y> BTW max
SMALLR OF <x> AN <y> BTW min
```
----
## Comparison
```
BOTH SAEM <x> [AN] <y> BTW WIN iff x == y
DIFFRINT <x> [AN] <y> BTW WIN iff x != y
BOTH SAEM <x> AN BIGGR OF <x> AN <y> BTW x >= y
BOTH SAEM <x> AN SMALLR OF <x> AN <y> BTW x <= y
DIFFRINT <x> AN SMALLR OF <x> AN <y> BTW x > y
DIFFRINT <x> AN BIGGR OF <x> AN <y> BTW x < y
```
----
## Flow Controls
### If else
```
<expression>
O RLY?
YA RLY
<code block>
NO WAI
<code block>
OIC
```
```
BOTH SAEM ANIMAL AN "CAT", O RLY?
YA RLY, VISIBLE "J00 HAV A CAT"
NO WAI, VISIBLE "J00 SUX"
OIC
```
----
### switch case
```
WTF?
OMG <value literal>
<code block>
[OMG <value literal>
<code block> ...]
[OMGWTF
<code block>]
OIC
```
----
```
COLOR, WTF?
OMG "R"
VISIBLE "RED FISH"
GTFO
OMG "Y"
VISIBLE "YELLOW FISH"
OMG "G"
OMG "B"
VISIBLE "FISH HAS A FLAVOR"
GTFO
OMGWTF
VISIBLE "FISH IS TRANSPARENT"
OIC
```
----
### for loop
```
IM IN YR <label> <operation> YR <variable> [TIL|WILE <expression>]
<code block>
IM OUTTA YR <label>
```
```
I HAS A KAT ITZ 0
IM IN YR LOOPY UPPIN YR KAT TIL BOTH SAEM KAT AN 5
VISIBLE ("LOOPLOOPLOOP")
IM OUTTA YR LOOPY
```
----
## implementation
----
hello world
```
HAI
CAN HAS STDIO?
VISIBLE ("HALOWOLD")
KTHXBYE
```
output:
```
HALOWOLD
```
----
print from 1 to 10
```
HAI
CAN HAS STDIO?
I HAS A VAR ITS 1
IM IN YR LOOPY UPPIN YR VAR TIL BOTH SAEM KAT AN 11
VISIBLE ("STFU ITZ ") VAR
IM OUTTA YR LOOPY
VISIBLE ("KTHXBYE")
KTHXBYE
```
output
```
STFU ITZ 1
STFU ITZ 2
...
STFU ITZ 10
KTHXBYE
```
---
# Befunge
----
```
> v
v ,,,,,"Hello"<
>48*, v
v,,,,,,"World!"<
>25*,@
```
```
>25*"!dlrow ,olleH":v
v:,_@
> ^
```
```
<v"think of a number between 1 and 10."*52
v,< >,,,,,,,,@
>:| ^"it is 1!"*52<
<v"6-10 (y/n)?"*52 |#
v,< v"then it is 2!"*52<
>:| >,,,,,,,,,,,,,,@ #
-"n"~< v_v# -#
v"8-10 (y/n)?"*52< "
v,<v"3-5 (y/n)?"*52< n
>:|v,<>"n"-#v_v v,<"
~>:| >25*"?)n/y( 1 ti si">:|~
v-"n"< ~ >25*"?)n/y( 4-3"v >^
>#v_v >^ v,< v,<
v < >,v >:|>25*"?)n/y( 8 ti si">:| >,v
2 >25*"?)n/y( 9-8"#^:_~"n"- #~|> v ~ >25*"!8 si ti" :|:<
5 >,,,,,,,,,,,,,@ v_v#-"n"<>^ v,< >"n"-| @
* ^"then it is 4!"*52< >25*"!5 si ti neht">:| >25*"!9 si ti neht"^
" v"it is 3!"*52< >25*"?)n/y( 3 ti si"v @ v,<
? v,< ^_^#-"n"~,,,,,,,,,,,,,,, < >25*"!01 si ti neht">:|
) >:| v,< @
n @ >:|
" v,< >"!6 si ti"^ @ v,<
>"/y( 6 ti si">:| >"!7 si ti neht">:|
>~"n"-#^_^ @
```
----
## What is Befunge?
* Stack-oriented
* 2 dimensional
* Before -> Befunge(???)
----
## Instructions

----
Hello world

[Befunge interpreter](https://befunge.flogisoft.com)
so many bugs holy crap
----
Hello world with loops and if-elses

---
# Turing-complete
---
# Piet
----
Piet Mondrian (1872 - 1944)

----

* codels
* code blocks
* direction pointer
* Codel chooser
----
<img src="https://hackmd.io/_uploads/SJ1UZ-LWR.png" alt="drawing" width="400"/>
| Color | None| 1 Darker |2 Darker
| -------- | -------- | -------- | ------- |
|None| current| push |pop
|1 Step | add| subtract |multiply
|2 Steps| divide |mod |not
|3 Steps| greater| pointer|switch
|4 Steps| duplicate| roll |in(number)
|5 Steps| in(char)| out(number)| out(char)
----

---
# Whitespace
----
```
```
----
```
```
helloworld
----
```
```
----
```
```
WTF?
----
## What is Whitespace?
* stack-oriented (again)
* has only three characters
(space, tab, linefeed) -> SUPER EZ
---
# More
----
## Brainfuck
```
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
```
WTF?
----
## 文言

華德發?
----
## Malbolge
* based on ternary digits
* encrypted
* "the crazy operation"
----
```
('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>
```
## WHAT THE FUCK?
----
### [Esolang wiki](https://esolangs.org/wiki/Main_Page")
### [All compliers are here.](https://www.tutorialspoint.com/codingground.htm)
---
# Homework 0 (Yeah)
----
## List of Problems
1. solve DSA-miniHWA by using LOLCODE
2. solve DSA-miniHWB by using Piet
3. (bonus)solve Dungeons of Sacred Abyss by using Malbolge
due: 2024/04/25 13:00:00
----
JK
---
# thx
{"contributors":"[{\"id\":\"99dae8ec-ff09-4b9b-aab9-0c9ecd95ce85\",\"add\":11103,\"del\":3132}]","title":"Esolangs","description":"type: slideㄑ–-","slideOptions":"{}"}