10 самых странных языков программирования

10 самых странных языков программирования

Языки программирования, как предполагается, просты в использовании и обучении. Они должны быть структурированы и позволять решать реальные проблемы, синтаксис должен быть ясен и понятен, а реализация программ на них должна работать быстро и без ошибок. Существуют языки программирования, которые не соответствуют этим принципам. Они создаются для научных исследований или просто для удовольствия. Вот 10 самых странных и непрактичных языков программирования.

LOLCODE

Он был создан в 2007 году Адамом Линдсей, научным сотрудником Ланкастерского университета. Язык использует сокращенный словарь интернет-мема ЛОЛКОТ и будет прост в освоении для тех, кто знаком с английским интернет сленгом.

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
   UP VAR!!1
   VISIBLE VAR
   IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE

Как и в большинстве языков в этом списке, в нём нет стандартных библиотек. Это означает, что вы не сможете использовать LOLCODE никак больше, чем чтение файла или запись текста на консоль. Если вам нужна более мощная версия, можно использовать LOLPython, который, использует синтаксис LOLCODE и дает Вам доступ ко всем библиотекам языка Python.

Glass

Является эзотерическим языком программирования, разработанным компанией Gregor Richards в 2005 году. Он сочетает в себе не интуитивные постфиксные обозначения и сложную реализацию объектно-ориентированной модели программирования. По мнению автора ни один другой язык не реализован так, как этот, потому что это идиотизм.

Вот пример программы, которая выводит последовательность Фибоначчи:

{F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*(_a)(le).?=/(_isle)^\(_n)*(_a)
s.?(_t)f.?(_n)*(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)=(_nlm)
=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*(_a)a.?=(_nlm)(_n)*
(_a)(le).?=\]}

Brainfuck

Brainfuck является суперзвездой среди непонятных языков, став почти культом. Общеизвестно, что трудно программировать на нем, используя только восемь простых команд и указатель команд. Он предназначен, чтобы бросить вызов и развлекать программистов, а не для того, чтобы быть пригодным для практического использования. Он был создан в 1993 году Урбаном Мюллером. Сообщение «Привет, мир!» Программа выглядит следующим образом:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.
<<+++++++++++++++.>.+++.------.--------.>+.>.

Chicken

Chicken не только название языка, но и единственное ключевое слово, которое используется в нем! Количество повторений и новых линий определяет код операции, которая выполняется. Пример программы показан в следующем примере. Можете догадаться, что он делает?

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

Whitespace

Это замечательный язык программирования. Он понимает только пробелы, табуляции и новые строки, игнорируя все остальное. Это дает возможность создать основную программу, написанную на другом языке, например JavaScript, отступы, которой является программой в Whitespace! Вот пример, который печатает «Hello, World!» (пробелы, отмеченные S а табуляции Т):

S S S T	S S T	S S S 
T	
S S S S S T	T	S S T	S T	
T	
S S S S S T	T	S T	T	S S 
T	
S S S S S T	T	S T	T	S S 
T	
S S S S S T	T	S T	T	T	T	
T	
S S S S S T	S T	T	S S 
T	
S S S S S T	S S S S S 
T	
S S S S S T	T	T	S T	T	T	
T	
S S S S S T	T	S T	T	T	T	
T	
S S S S S T	T	T	S S T	S 
T	
S S S S S T	T	S T	T	S S 
T	
S S S S S T	T	S S T	S S 
T	
S S S S S T	S S S S T	
T	
S S

///

Минималистский язык, который состоит только из одной операции — подстановки строк в виде / источника / замены /. Его разработал Таннер Светт в 2006 году. Язык очень ограничен, но некоторые умные программисты способны превратить операцию замены строк в полностью рабочие программы, которые обрабатывают и выводят данные. Вот пример программы «Hello, World!»:

/ world! world!/Hello,/ world! world! world!

Befunge

Befunge это двумерный язык программирования. Ваш код находится на игровой области с фиксированным размером. Каждая клетка игрового поля может удерживать код или данные, ваша программа может заменить любую ячейку с ними. Вызов программы начинается в верхней левой ячейке и продолжает вправо. Вы можете управлять направлением при помощи специальных инструкций. Например, это бесконечный цикл:

>v
^<

А это “Hello, world!”:

0"!dlroW ,olleH">:#,_@

Piet

Пит это язык программирования, в котором программы — это растровые изображения, которые выглядят как абстрактные картины. Основным строительным блоком для программ является цвет блока. Он поддерживает 20 различных цветов, в некоторых реализациях языка используется большее количество цветов. Компилятор руководствуется указателем, который движется вокруг изображения, с одного цветного региона к другому. Вот “Hello, world!”:

Программа Hello World на Piet

Hello World на Piet

Malbolge

Malbolge это язык программирования, разработанный Беном Олмстедом в 1998 году и назван в честь восьмого круга ада в ада по Данте. Название было выбрано не случайно — язык был специально разработан, чтобы на нем было невозможно писать полезные программы. Через несколько лет после его появления, были найдены «уязвимости», которые делают возможным написание программ на нем. Необходимо обладать навыками криптографии, чтобы написать содержательную программу. Вот так “Hello, world!” выглядит в Malbolge!:

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>

~English

Это язык программирования, который пытается подражать естественно звучащему языку. Ни одна функция не может быть определена программистом — есть возможность использовать только встроенные в язык функции. Вот пример программы:

Display "Hello world!" and a newline.
Stop the program.