Mga Curiosity: Mga wika ng Esoteric na programa

Ang mga wika ng esoteric na programa ay minimalist na mga wika, nilikha bilang patunay ng konsepto at / o hamon, kapwa upang mai-program ang wika at magsulat para dito. Tingnan natin ang isang pagsusuri ng ilan sa mga ito:

brainfuck


Ito ang pinakakilala at pinakatanyag, ang syntax nito ay medyo simple:

 
 ++++++++++
 [          Mag-loop upang simulan ang mga alaala (umuulit ng 10 beses)
    >+++++++>++++++++++>+++++++++++>+ + +>+<<<<-
       70 100 110 30 10
 ]
 >++.              'H' (72) 1
 >>+.              'o' (111) 3
 ---.              'l' (108) 3
 <---.             'a' (97) 2
 >>++.             puwang (32) 4
 <+.               'm' (109) 3
 ++++++++.         'u' (117) 3
 -------.          'n' (110) 3
 <+ + +.             'd' (100) 2
 >+.               'o' (111) 3
 >+.               '!' (33) 4
 >.                '\ n' (10) 5

Upang maipaliwanag ang syntax nito, pinakamahusay na lumipat sa iba pang mga wika ng programa. Kaya sa kanyang pahina sa Wikipedia bigyan kami ng talahanayan na ito ng mga katumbas, kung saan ang ptr ay katumbas ng isang hindi naka-sign na char:

utak C Perl
> ++ ptr; $ pointer ++;
< –Ptr; $ pointer–;
+ ++ * ptr; $ tape [$ pointer] ++;
- - * ptr; $ tape [$ pointer] -;
. putchar (* ptr); i-print ang chr $ tape [$ pointer];
, * ptr = getchar (); $ tape [$ pointer] = ord (<>);
[ habang (* ptr) { habang ($ tape [$ pointer]) {
] } }

Ook!


Ito ay batay sa naunang isa, ngunit gumagamit ng salitang kumbinasyon sa halip Okay?, Sige! y Gayundin. Ito ay isang patawa ng librarian mula sa Discworld, na ginawang isang orangutan at mabibigkas lamang ang tatlong salitang iyon. Tingnan natin ang isang piraso ng code.

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. 

Kumbaga kung ano ang ginagawa ng "program" na ito ay isulat ang tipikal na "hello world."

Tumakas


Sa palagay ko ang pinaka-orihinal sa lahat, ang istraktura ng control control ay batay sa mga arrow na nagsasabi sa programa kung saan pupunta. Gayundin, ginagawang mas madali ang paglikha ng mutant code (code na nagbabago mismo):

vv << 2 ^ v <v13v4 ^ ^ >>?>?> 5 ^ vv v97v6 vv <8. >> ^ ^

Ang code sa itaas ay isang walang katapusang random na generator ng numero, na makakabuo ng isang numero sa pagitan ng 1 at 9. Mas maraming nababasa kaysa sa mga nauna.

Malbolge


Narito mayroon kaming isang wika ng programa na nilikha upang maging nakakainis at hindi mabasa (hindi, hindi C, at hindi, hindi ito Perl). Ay tungkol sa Malbolge, na ang pangalan ay nagmula sa ika-8 bilog ng impiyerno sa Ang Banal na Komedya. Narito ang isang "hello world" (o iyon ang sinabi sa akin):

 (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
 hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

lolcat


Isang simpleng biro. Tingnan natin ang iyong code:

HAI
CAN MAY STDIUM?
MERON AKONG Var
IM IN YR LOOP
   UP Var!!1
   MABUTI Var
   IZ Var MAS MALAKI SALAMAT 10? KTHX
IM LABAS YR LOOP
KTHXBYE

Dahil mas nababasa ito kaysa sa mga nakaraang wika ng programa, papayagan kitang hulaan kung ano ang dapat gawin. 😉

INTERCALL


At ang panghuli ngunit hindi pa huli ay mayroon kaming parody ng FORTRAN na wika ng programa. INTERCAL. At dito kumusta mundo.
DO ,1 <- #13
MANGYARING DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
MANGYARING DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
MANGYARING BASAHIN SA ,1
MANGYARING GIVE UP
Ayun, yun lang.

Kailangan kong sabihin na ang ilan sa mga wikang ito sa pag-program ay napaka kapaki-pakinabang para sa pag-aaral tungkol sa ilang mga konsepto ng computer. Halimbawa, brainfuck ito ay perpekto para sa pag-aaral tungkol sa mga payo.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   davidlg dijo

    Halos mas gusto ko ang binary code

    1.    deskoder dijo

      Oo, tiyak na mas gusto kong mag-program sa binary o sa assembler nang direkta, maaari kang gumawa ng anumang bagay (ang mga mataas na antas na wika ay tatakbo sa processor pagkatapos ng lahat), ngunit ang kagiliw-giliw na bagay tungkol sa mga wikang esoteriko ay ang hamon na kinakatawan nila. Sa pamamagitan ng paraan, roader (ang may-akda ng artikulong ito), naiinis ka sa akin. Paano hindi mabasa at nakakairita ang C at Perl?. Ano ang isang hindi matiis na pagkakasala !! Ano ang isang galit! Ngunit kung ang C ay kahanga-hanga, sa perl hindi ako naka-program ngunit nakakita ako ng magagandang komento tungkol sa wikang ito sapagkat tila ito ay napakaangkop para sa paghawak ng mga file, mga string at mga pod na ito, halimbawa para sa mga pagsasamantala ito ay mahusay, bagaman ang cy python sa mga pagsasamantala ay gumagana nang maayos ...

      Pagbati!

      1.    roader dijo

        Ang tao, ang bagay na C at perl ay isang biro, at oo, ang mga ito ay madaling mabasa, napaka praktikal at "maganda" sa mga kanang kamay. Siyempre sa C nakita ko na ang ilang mga tao ay nagtatapos sa paglikha ng isang gulo ng hindi maunawaan na spaghetti code, at walang magtala . Tulad ng para kay Perl, hindi lamang ang parehong bagay ang nangyayari tulad ng sa C, ngunit, sa sobrang labis na kakayahang umangkop, maaari kang makahanap ng mga bagay na sumasalungat sa sentido komun. Kailangan kong sabihin na wala akong karanasan sa pagprogram sa Perl, ngunit alam ko nang mabuti ang syntax nito.

  2.   Joaquin dijo

    Ang una ay kung paano sumulat sa morse code

    1.    roader dijo

      At ang pangalawa ay dapat maging isang orangutan, at ang pang-apat, nagdudulot ito ng mga cerebral infarcts.

  3.   Tyrus Junior dijo

    Napakahusay ng post.

  4.   johnfgs dijo
    1.    roader dijo

      At chef, unlamda, whitespace at tink. Ngunit hindi ko nais na gawing masyadong malaki ang artikulo.

  5.   diazepam dijo

    SHOWTIME ITO
    KAUSAPAN SA KAMAY «hello world»
    NAPATITADO KA NA

    Hello World sa ArnoldC

    http://www.genbetadev.com/actualidad/arnoldc-el-lenguaje-basado-en-frases-de-arnold-schwarzenegger

    1.    roader dijo

      Sa gayon, hindi niya alam ang isa, hulaan ko ang ideya ay ibinigay sa kanya ng "null terminator"

  6.   eliotime3000 dijo

    Ang totoo ay ang mga wikang iyon sa pagprograma na nagpatawa sa akin. Mabuti