Для тех, кто знаком с программированием не понаслышке, не станет новостью то, что создать собственный язык программирования может кто угодно. Ведь, по сути, это всего лишь набор высокоуровневых формальных правил передачи инструкций машине. Огромное количество пользователей и сообществ стремятся создать язык программирования, в чем-то превосходящий существующие, разработать его «под себя» или просто придумать что-то новое для развлечения или самореализации.
Со времен создания первых программируемых вычислительных машин человечество изобрело более 8500 языков программирования, и теперь их количество сравнимо с количеством естественных языков на планете. При этом языки программирования ежегодно пополняют свой состав, в то время как количество живых естественных языков с развитием коммуникаций уменьшается примерно на один язык в две недели.
Стоит отметить, что большинство языков программирования появились в англоговорящих странах (2400 языков разработаны в США, 600 — в Великобритании, 160 — в Канаде, 75 — в Австралии), и неудивительно, что большинство языков программирования использует английскую лексику.Однако этим не исчерпывается все разнообразие языков управления вычислительными машинами. Существует множество языков программирования, не основанных на английском языке или вообще не основанных на каком-либо естественном языке — вот о них мы сегодня и поговорим.
Языки, не основанные на естественных языках
Многие из языков программирования, не основанных на привычной для человека лексике, являются эзотерическими, созданными для развлечения, и представляют собой образец компьютерного юмора. При этом иногда преследуются определенные цели, например, придумать такой язык, компилятор для которого имел бы минимальный размер.К языкам программирования, которые не используют ключевые слова на естественных языках, можно отнести таких колоритных представителей, как:
- «Brainfuck»,
8-командный минималистический язык программирования с исходным кодом из 8 символов без какого-либо дополнительного форматирования; - «FALSE» с синтаксисом, больше похожим на шифровку;
- «Whitespace», чей исходный код строится из пробелов;
- «var’aq», основанный на клингонском языке из сериала Star Trek;
- «Планкалкюль», первый в мире высокоуровневый язык программирования, созданный в 1945 году.
Программа “Hello World” на языке Brainfuck
Локализованные языки и языки, не основанные на английском
Стандарт языка «Алгол-68» был опубликован в 1968 году на нескольких языках и был одобрен Международной федерацией по обработке информации. Алгол-68 разрабатывался вСейчас существует немало языков программирования, ключевые слова в которых локализованы для нескольких языков, например:
- 4th Dimension. Существуют локализации для английского, немецкого, французского, японского, корейского, персидского языков и иврита;
- язык макросов MS Word и MS Excel —локализован для большого количества естественных языков.
Стандартная небольшая программа на «Рапире», с элементами взаимодействия с GUI (см. ниже оператор
ОКНОДАЙ
) выглядит так:Пример кода на «Рапире»
Кроме «1С:Предприятие», можно еще перечислить с десяток языков, основанных на русском, но они в основном либо носят учебный характер, либо имеют крайне узкую направленность.
Языки программирования, основанные на европейских языках, не впечатляют своим разнообразием. Возможно, это связано с тем, что европейцы в основной своей массе хорошо владеют английским, а для некоторых он же является и родным языком общения.
Чаще других встречаются французские и немецкие локализации:
- Fjölnir. Основан на исландском языке, базируется на представлении программ как деревьев, взаимосвязи модулей не определяются перечислением импортируемых имён внутри каждого модуля, а задаются «снаружи» как выражения над модулями в целом.
- GOTO++. Основан на французском языке. Вот что гласят первые строчки документации к GOTO++, которые вряд ли добавят оптимизма англоговорящим разработчикам: «Внимание: руководство не было переведено с французского. Очень жаль, но вам придется изучить французский язык. Но не переживайте, французский — очень красивый язык, я его использую и одобряю».
- Lexico. Испанский объектно-ориентированный язык, предназначенный для изучения .NET.
- LSE. Французский язык программирования, некая смесь BASIC и PASCAL.
- SAKO. Польский язык программирования, представляющий из себя, по большому счету, локализованную версию FORTRAN.
- Superlogo. Голландская разработка, основанная на языке Logo, который в свою очередь был придуман в 1967 году для обучения детей дошкольного и младшего школьного возраста азам программирования.
- Aheui. Этот язык программирования основан на стековом эзотерическом языке программирования Befunge и использует Хангыль — фонематическое письмо корейского языка.
- AMMORIA. Первый открытый объектно-ориентированный арабский язык программирования.
- Geem. Арабский язык программирования, основанный на C++.
- Nadeshiko. Этот язык программирования основан на японских иероглифах.
- Hindi Programming Language. Язык программирования для .NET, основанный на хинди (см. рис. внизу ).
Пример программы на HPL
Отдельно можно выделить китайские языки программирования: Chinese BASIC (локализованный BASIC), Easy Programming Language, ChinesePython (тот же Python, но использующий китайскую лексику), Mama. Последний представитель, кроме всего прочего, поддерживает и другие естественные языки, кроме китайского. Этот язык призван помочь китайским студентам быстрее освоить программирование, позволяя писать первые программы на своем родном языке.
Вот как выглядит, например, код на ChinesePython:
Образец кода на языке ChinesePython
Перечисленными представителями, конечно, не ограничивается все разнообразие языков программирования, формализованных с помощью иностранных ключевых слов. Стоит отметить, что большинство из них не являются инновационными разработками, а лишь основаны на существующих популярных языках программирования или являются их локализованными версиями.
Остальные же выполняют строго определенную функцию, которая по большей части сводится либо к возможности изучать основные концепции программирования для школьников или студентов, либо к реализации потенциала начинающих разработчиков, не владеющих английским.
Полиглотические программы
Последний вариант: одновременная комбинациях из самых разных групп языков. Это отличное упражнение, даже для вполне зрелых программистов. Итак, полиглотический код — это код, который является одновременно синтаксически-корректным и функционально-эквивалентным сразу на нескольких языках программирования. Наверное, проще понять это на примере.Самый известный пример этого для меня — штатная заставка на популярном сервисе технических вопросов-и-ответов Stack Overflow: страница не найдена, ошибка 404.
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемыми ниже кнопками:
Блог: http://romanlovetext.blogspot.com/