# 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 ![image](https://hackmd.io/_uploads/S1SucNrWC.png) ---- ## LOLCAT ![image](https://hackmd.io/_uploads/SJudPvUWA.png) ---- ``` 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 ![Screenshot 2024-04-24 at 16.01.11](https://hackmd.io/_uploads/SyVI3VIW0.png) ---- Hello world ![Screenshot 2024-04-24 at 15.42.58](https://hackmd.io/_uploads/SkkMdEUZ0.png) [Befunge interpreter](https://befunge.flogisoft.com) so many bugs holy crap ---- Hello world with loops and if-elses ![Screenshot 2024-04-24 at 15.43.40](https://hackmd.io/_uploads/Hk9VOVIbC.png) --- # Turing-complete --- # Piet ---- Piet Mondrian (1872 - 1944) ![image](https://hackmd.io/_uploads/HJXWRgUZ0.png) ---- ![image](https://hackmd.io/_uploads/B1x9peU-A.png) * 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) ---- ![Screenshot 2024-04-24 at 12.44.13](https://hackmd.io/_uploads/rJ37RbIZA.png) --- # Whitespace ---- ``` ``` ---- ``` ``` helloworld ---- ``` ``` ---- ``` ``` WTF? ---- ## What is Whitespace? * stack-oriented (again) * has only three characters (space, tab, linefeed) -> SUPER EZ --- # More ---- ## Brainfuck ``` ++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>. ``` WTF? ---- ## 文言 ![image](https://hackmd.io/_uploads/ByqDSlLWA.png) 華德發? ---- ## 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":"{}"}
    287 views