Keisčiausios ir beprotiškiausios programavimo kalbos – kai praktiškumas prasilenkia su absurdiškumu (kodo pavyzdžiai)  (3)

Prisijunk prie technologijos.lt komandos!

Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.

Sudomino? Užpildyk šią anketą!

3. „Velato“

„Velato“ yra vienas unikaliausių „esolangų“ – komandoms užrašyti naudojamos muzikos natos. Pats šaltinio kodas pateikiamas MIDI failų formatu.

Muzikoje komandos aiškinamos atsižvelgiant į intervalus tarp kūrinio natų. Pavyzdžiui, if-teiginys žymimas tobulu 5-uoju intervalu, kitas teiginys - didžiuoju 6-uoju ir kt.

„Velato“ taip pat pristato „komandos pirminės natos“ (command root note) idėją. Tačiau komandos pirminė nata nėra nurodoma akordu ar konkrečiu klavišu. Vietoj to, komandos pirminė nata apibrėžiama pirmoje dainos natoje. Kai nata grojama du kartus, komandos pirminę natą galima pakeisti į naują.

Komandos pirminė nata yra ypač svarbios dirbant su kintamaisiais.

 

Nors „Velato“ nesugeba kurti funkcijų ir iš pradžių gali klaidinti naujokus, kalba siūlo iššūkį programuotojams kurti savo muziką, bet ir sukurti jos viduje užkoduotą programą.

4. „Whitespace“

Paprastai tarpai (whitespace) reiškia simbolius, vaizduojančius nematomą puslapio erdvę. Panašiai „Whitespace“ kalboje komandos yra pagrįstos simboliais, kurie yra nematomi, pvz., tarpai, skirtukai ar naujos eilutės. Visi kiti simboliai ignoruojami.

Duomenims koduoti „Whitespace“ naudoja dvejetainį kodą, kur tarpai yra kaip nuliai, o skirtukai (tab) – vienetukai. Pavyzdžiui, klavišų tab-space-space seka reikštų 1100 dvejetainėje sistemoje arba „12“ dešimtainėje.

„Whitespace“ yra ribota, kokio tipo programas ji tikrai gali sukurti. Norėdami sukurti klasikinę „hello, world“ eilutę, turėsite panaudoti beveik 1000 atskirų whitespae simbolių.

Tai tik keli keistų „esolangų“ pavyzdžiai, kurių galima priskaičiuoti šimtus. Programavimo kalbų sritis neapsiriboja vien kalbų kūrimu praktiniais tikslais. „Esolangai“ tapo nauju įdomiu būdu programuotojams ištirti ir peržengti programavimo kalbos dizaino ribas.

Pasidalinkite su draugais
Aut. teisės: MTPC
MTPC
(35)
(12)
(23)

Komentarai (3)