В поисках информации об языках программирования натолкнулась на такую статью. Мне она показалась интересной, так что пусть она лежит здесь
Самые необычные языки программирования.
В школе и университете большинство из нас сталкиваются с такими известными языками программирования, как Бейсик, Паскаль, Си. Тем не менее, существуют некоторые весьма необычные компьютерные языки. Естественно, для широкого применения они не предназначены, будучи разработанными для хакеров, да увлеченных энтузиастов. Часто эти экзотические языки вообще придумываются для развлечения, они или пародируют настоящих своих собратьев или же вообще являются абсурдным подходом к некоторым серьезным догмам программирования.
Зато у любого такого языка есть приятная особенность - текст программы на нем понятен лишь посвященному, либо непонятен вообще в случае, если для составления программы надо сперва создать ее на обычном языке. Если разработчики обычных языков стараются сделать синтаксис своих детищ максимально понятным, а программирование - комфортным, то создатели необычных языков руководствуются прямо противоположными инструментами для достижения своей уникальности.
читать дальшеINTERCAL. Этот язык является одним из старейших в компьютерном программировании. Сами его создатели утверждают, что название означает дословно "Язык программирования с непроизносимой аббревиатурой". Создателями INTERCALL в 1972 году стали студенты Дон Вудс и Джеймс Лайон. Молодые люди хотели создать пародию на существующие языки программирования, потренировав к тому же свой мозг. В результате их детище, INTERCALL имеет принципиальные отличия от других языков. Привычные в других местах стандартные операции работают здесь необычным способом. Авторы внесли в свой язык парадоксальные конструкции, такие как "COME FROM", "FORGET" и даже "PLEASE ABSTAIN FROM CALCULATING" ("уйди", "забудь" и "пожалуйста, воздержитесь от вычислений"). Специальные имена были данные и символам. Так, кавычки именуются кроличьими ушами, а знак равенства "=" - полрешетки, так как сама решетка выглядит как "#". Тем не менее, несмотря на необычность такого языка, он позволяет делать такие же вычисления, как и любое другое нормальное средство программирования.
Whitespace. Название этого языка дословно означает "пробел". У этого инструмента есть существенное отличие - для его управляющих конструкций используются только непечатные символы, в число которых попали пробел, табуляция и символ перевода строки. Следствием этого послужил тот факт, что текст программы на этом экзотическом языке можно скрыть внутри исходников другой программы. "Whitespace" появился на свет 1 апреля 2003 года, авторами стали Эдвин Брэди и Крис Моррис. Дата рождения языка стала причиной того, что его поначалу воспринимали как шутку.
Chef. Авторами этого языка в 2002 году стал Дэвид Морган-Марон. Интересно, что программы на Chef схожи с приготовлением блюд по рецептам. Все переменные названы в честь основных продуктов питания. Стеки, куда попадают значения переменных, называются "mizing bowls" (чаша миксера), а операции для работы с ними - "mix" (смешивание), "stir" (размешать) и так далее. Язык "Chef" основывается на следующих принципах:
- рецепты программирования должны не только давать необходимый результат, но и быть легкими в приготовлении и необычайно вкусными;
- рецепты должны быть доступны любому "повару", невзирая на его бюджет;
- в рецептах разрешается использовать традиционные кулинарные средства, такие как столовые ложки и чашки.
Чтобы понять уникальность этого языка, надо привести лишь список используемых для приготовления ингредиентов - p (potatoes, картофель), d (dijon mustard, горчица), l (lard, сало), r (red salmon, красный лосось), o (oil, масло), w (water, вода), z (zucchinis, цуккини).
Velato. В данном языке основой для исходного кода служит звуковой MIDI файл. Программы определяются порядком нот и их высотой, что дает гибкость в написании кода. Создатели заявляют, что они стремятся к гармонии, присущей музыке, в частности, джазу. Все сообщения в языке начинаются с главной и общей для всех ноты, а от нее уже задаются музыкальные интервалы, которые и выступают командами. Чтобы ритм в сообщениях был более музыкальным, допускается замена главной ноты.
Shakespeare. Этот экзотический язык был создан Джоном Аслаудом и Карлом Хассельстромом. Целью "Шекспира" было замаскировать исходный текст программ, придав им вид пьес великого драматурга по аналогии с языком Chef. В начале программы объявляется список действующих персонажей. Таким образом авторы объявляют количество стеков. В результате они получают такие имена, как Ромео или Джульетта. Герои общаются друг с другом, задают друг другу вопросы, фактически же совершают операции ввода/вывода и используют условные операторы. Хотя программная модель и напоминает ассемблер, на деле она значительнее многословнее. От начала документа до первой пустой строки располагается эпиграф. Этот первый абзац компилятор воспринимает, как комментарий. Части кода программы на языке "Шекспир" именуются "Актами", которые делятся на сцены. Каждая "Сцена", как и каждый "Акт" пронумерованы римскими цифрами, служа метками для оператора "GOTO". Чтобы персонажам принять участие в действии, им надо сперва выйти на сцену. Для помещения их туда служит команда "Enter". Правда, если на сцене более одного персонажа, становится непонятным, с кем же именно ведется общение. Поэтому лишнее действующее лицо удаляется с помощью команды "Exit". По окончании действия акта или же при необходимости очистить сцену сразу от нескольких персонажей надо воспользоваться командой "Exeunt".
Omgrofl. Это средство программирования создал в 2006 году инженер Juraj Borza. Ключевые слова языка весьма напоминают распространенный в Интернете сленг. Название же "Omgrofl" и вовсе является результатом объединения слов "omg" и "rolf". Последнее является фактически одной из команд этого языка. Любопытно, что переменные в нем должны выступать формой сленгового языка lol. Таким образом здесь можно увидеть lool, loool, looool и так далее.
Piet. Это экзотический язык придумал уже упомянутый Дэвид Морган-Маром. В данном случае в качестве программ выступают цветные картинки, а код представлен в форме абстрактных рисунков. В результате программа на этом языке неискушенному взгляду напомнит абстракцию постмодерниста. Свой имя язык получил от голландского художника Пита Мондриана. Для программирования используется 20 разных цветовых оттенков. При этом 18 из них связаны друг с другом с помощью циклов оттенков и яркости. Лишь белый и черный цвета не входят в эти циклы.
Befunge. Самая первая версия этого языка появилась на свет еще в 1993 года, а автором стал Крис Пресси. Как он сам утверждал, его целью было создать язык максимально сложный для компиляции. Для этого в язык были внесены команды "p" и "g", которые модифицировали текст программы. Практически все одномерные языки программирования требуют некоторые синтаксических различий между исходным кодом и самими комментариями к нему. А вот в языке Befunge вообще не предусмотрено какого-либо синтаксиса для комментария. Для того чтобы вставить пояснения в код, программист просто "обводит" управление вокруг этой области. Задачей компилятора является обнаружение таких необозначенных ничем комментариев.
Malbolge. Такое необычное программное средство придумал в 1998 году Бен Олмстед. Он решил создать язык, который был бы максимально сложным для создания на нем программ. Да и название было выбрано подходящее, ведь Malebolge - восьмой круг ада Данте. Чтобы создать на этом языке первую программу потребовались долгие два года.
Brainfuck. Этот язык является одним из самых известных среди всех необычных средств такого рода. Автором его стал в 1993 году немец Урбан Мюллер, который создал свое детище ради забавы. В языке всего восемь команд, для написания каждой из них требуется всего один символ. Исходный же текст программы на Brainfuck выглядит как последовательность этих символов без какого-либо дополнительного синтаксиса. Урбан Мюллер вспоминает, что он стремился создать язык с минимально возможным компилятором. Частично его вдохновил на эту работу язык FALSE, чей компилятор занимал всего 1024 байта. А для языка Brainfuck в природе существуют компиляторы менее 200 байт! Писать на нем в итоге настолько сложно, что программисты шутят, что это язык для настоящих мазохистов. Неслучайно дословный перевод Brainfuck означает "половой акт с мозгом". Тем не менее стоит отметить, что Brainfuck является не только простым языком, но и естественным, полным и может использоваться при определении понятия вычислимости.Надо будет как-нибудь собрать примеры кода программы "hello, world" на этих языках и
ужаснуться полюбоваться на них.