След като се порових малко, за да намеря информация за програмния език Brainfuck, попаднах на една така цяла група езици, наречени езотерични езици. На български може да се казват по дру начин, но английски са си esoteric programming languages. Те служат само за той е предизвикателство пред програмистите и нямат никакво практическо приложение. Използваемостта рядко е сред приоритетите при създаване на такива езици, даже точно обратното – направени са максимално трудни за използване, просто за да му бъде гадно на този който пише и за да може да се докаже, че колкото и гадно да е писаното той пак е достатъчно умен да се оправи. Тези езотерично езици за програмиране са разделени на групи, като най-интересна за мен е групата Turing tarpit. При нея езиците използват много малък брой команди. В тази група спада Brainfuck, за който ви споменах, както и OISC (1 команда, 3 операнда) и Thue (1 команда, 2 операнда). Може би сте чували за компютърните архитектури – RISC (reduced instruction set computer или компютър с намален брой инстрикции) или CISC (complete instruction set computer или компютър с пълен набор инстрикции), но едва ли сте чували за OISC (One Instruction Set Computer или компютър с една инстрикция). Като го чух за пътви път ми прозвуча много интересно. Ето и как изглежда този език:
subleq a, b, c ; Mem[b] = Mem[b] - Mem[a]
; if (Mem[b] ? 0) goto ca, b, c
; Mem[b] = Mem[b] - Mem[a]
; if (Mem[b] < 0) goto
Изглежда сложничко нали. И си е така. Другият език от тази група езотерични езици е Thue. Аз лично много се чудих как се произнася и се оказа че е tu:ei. Ето и един пример:
a::=~Hello World! ::= a